我希望动态地指示ASP.NET拒绝访问特定位置。因此,我不想在Web.config中使用以下内容,而是通过C#代码实现这一点。
<location path="specialDir"> <system.webServer> <security> <authorization> <add accessType="Deny" roles="FileDeny" /> </authorization> </security> </system.webServer> </location>
有什么想法吗?
答案 0 :(得分:2)
void Page_Load( ... )
{
if ( this.Context.User != null &&
!this.Context.User.IsInRole( "FileDeny" )
)
Response.Redirect( FormsAuthentication.LoginUrl );
这将是页面级别的最简单的解决方案。任何更有趣的东西,如自定义授权模块或基页类都是可能的。
答案 1 :(得分:0)
我不知道您的要求是什么,但您可以有一个基页类来解析请求uri并通过运行目录/页面信息(使用用户凭据)通过您将使用的任何函数来确定访问级别确定他们访问该目录/页面的授权。
答案 2 :(得分:0)
我会反过来说 - 将文件添加到预先选择了文件夹权限的文件夹中。你可能有这样做的理由,但是...如果以后添加新的权限/角色怎么办?最好有一个数据库方法来对此进行交叉检查用户权限/角色与分配给文件夹的那些(并存储在数据库表中)。
更好的方法可能是使用单个文件夹并从数据库字段值分配访问权限。