授权 Asp.net web.config

Posted

技术标签:

【中文标题】授权 Asp.net web.config【英文标题】:Authorization Asp.net web.config 【发布时间】:2010-10-13 03:40:34 【问题描述】:

我有一个有后台的应用程序。 这个后台是通过使用这样的角色来隔离的:

<location path="backoffice">
    <system.web>
        <authorization>
            <allow roles="admin"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

但是现在我们有另一种类型的角色需要访问。 companyadmin 角色。

我可以说吗?:

 <location path="backoffice">
        <system.web>
            <authorization>
                <allow roles="admin,companyadmin"/>
                <deny users="*"/>
            </authorization>
        </system.web>
    </location>

【问题讨论】:

【参考方案1】:

是的,确实如此(假设您正确验证了您的用户,并相应地设置了他们的角色)。

查看 MSDN 文章:https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-1.1/8d82143t(v=vs.71)

【讨论】:

请注意顺序确实很重要。根据文档,它将以短路方式一次检查一个规则。即,如果第一条规则是“全部拒绝”,那么资源将被拒绝。如果用户通过第一条规则并允许,则授予访问权限。【参考方案2】:

是的,你可以添加 n 个这样的角色。

如果您愿意,您还可以:

<allow roles="admin"/>
<allow roles="admin1"/>
<deny users="*"/>

【讨论】:

那个语法到底是怎么回事? @mbillard 他说的是“N”个角色,意思是需要多少就多少。【参考方案3】:

是的,角色、用户和动词采用逗号分隔值。

MSDN Reference

【讨论】:

以上是关于授权 Asp.net web.config的主要内容,如果未能解决你的问题,请参考以下文章

Auth0,带有授权扩展和 ASP.NET 授权

ASP.NET 5 授权两个或多个策略(或组合策略)

ASP.NET MVC下判断用户登录和授权的方法

Asp.net核心身份声明与基于角色的授权[重复]

ASP.Net Core 的自定义承载令牌授权

ASP.NET MVC 5 授权问题