动态拒绝访问位置

时间:2011-10-07 16:46:12

标签: c# asp.net

我希望动态地指示ASP.NET拒绝访问特定位置。因此,我不想在Web.config中使用以下内容,而是通过C#代码实现这一点。

<location path="specialDir">
    <system.webServer>
        <security>
            <authorization>
                <add accessType="Deny"
                     roles="FileDeny" />
            </authorization>
        </security>
    </system.webServer>
</location>

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

void Page_Load( ... ) 
{
    if ( this.Context.User != null &&
         !this.Context.User.IsInRole( "FileDeny" )
        )
       Response.Redirect( FormsAuthentication.LoginUrl );

这将是页面级别的最简单的解决方案。任何更有趣的东西,如自定义授权模块或基页类都是可能的。

答案 1 :(得分:0)

我不知道您的要求是什么,但您可以有一个基页类来解析请求uri并通过运行目录/页面信息(使用用户凭据)通过您将使用的任何函数来确定访问级别确定他们访问该目录/页面的授权。

答案 2 :(得分:0)

我会反过来说 - 将文件添加到预先选择了文件夹权限的文件夹中。你可能有这样做的理由,但是...如果以后添加新的权限/角色怎么办?最好有一个数据库方法来对此进行交叉检查用户权限/角色与分配给文件夹的那些(并存储在数据库表中)。

更好的方法可能是使用单个文件夹并从数据库字段值分配访问权限。