如何以编程方式测试asp.net位置文件夹授权

时间:2010-06-11 21:12:42

标签: asp.net security authorization web-config

我的web.config中有一个location元素,如下所示:

<location path="Admin">
    <system.web>
        <authorization>
            <allow roles="Domain\Development"/>
            <deny users="*" />
        </authorization>
    </system.web>
</location>

这样只允许开发组的成员访问此文件夹。

我想知道是否有办法简单地测试用户是否有权访问此文件夹?

一种情况是创建菜单项。如果用户没有适当的权限,我只想隐藏或不显示此文件夹中页面的链接。

有没有办法在代码中执行此操作。我不想硬编码检查Domain \ Development中的成员资格而不是我想使用asp.net告诉我这个当前用户是否有访问权限。

如果规则变得更复杂等,这将是很好的。在一个地方有这个强制执行DRY(不要重复自己)。

1 个答案:

答案 0 :(得分:2)

通过related question我找到了答案。致电UrlAuthorizationModule.CheckUrlAccessForPrincipal。 (文档为here。)您可以为其指定路径和用户(例如当前用户的Page.User),它会告诉您用户是否可以访问该路径。

我之所以喜欢这个,正是因为你提到的原因:你可以把你的访问逻辑放在一个地方。