SharePoint中托管的ASP.NET应用程序–如何选择性地禁用aspx页面



我们正在创建一个ASP.NET应用程序,该应用程序将托管在公司SharePoint场的layouts目录中。该应用程序是可配置的,因此根据应用程序部署到的网站集,它将根据某些SharePoint列表显示不同的内容。

我们遇到的问题是,有些网站需要某些页面,而其他网站则不需要。如果有人在网站集断章取义的情况下四处窥探这些页面,这可能会带来安全风险。

我们考虑的两种可能性是,只需在部署后手动删除aspx页面,或在页面加载时,查看页面是否有效,如果无效,则抛出异常或重定向。

有更好的方法吗?是否存在潜在的"SharePoint"方式?

我会为每个目标SPWeb/SPSite添加一个特定功能,该功能会自动激活(或根据您的部署过程手动激活),如果当前的SPWeb/SSPSite或当前的SPWeb激活了此特定功能,则可以在~Site/_layouts/xyz.aspx中添加。如果是这样的话,您可以使用SPUtility.TransferToErrorPage("access Denied,bla-bla bla")重定向时允许其他人访问;

这将允许您将aspx仅保护到启用相关功能的特定区域(您也可以使用通用功能),并防止在任何有效/相关上下文之外进行访问。

最新更新