动态拒绝对位置的访问

本文关键字:访问 位置 拒绝 动态 | 更新日期: 2023-09-27 18:10:46

我正在寻找动态指示ASP。. NET拒绝对特定位置的访问。因此,在Web中没有像下面这样的东西。我想通过c#代码来实现。

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

任何想法?

动态拒绝对位置的访问

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

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

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

我会用另一种方式来做——用预先选择的文件夹权限将文件添加到文件夹中。你这样做可能有你的理由,但是……如果稍后添加新的权限/角色怎么办?最好采用基于数据库的方法,对分配给文件夹(并存储在DB表中)的用户权限/角色进行交叉检查。

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