加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在我的代码隐藏类中,如何检索授权角色?

发布时间:2020-12-16 03:50:36 所属栏目:asp.Net 来源:网络整理
导读:我在web.config中有以下内容: location path="RestrictedPage.aspx" system.web authorization allow roles="Group1Admin,Group3Admin,Group7Admin"/ deny users="*"/ /authorization /system.web/location 在RestrictedPage.aspx.cs中,如何检索包含Group1A
我在web.config中有以下内容:

<location path="RestrictedPage.aspx">
    <system.web>
        <authorization>
            <allow roles="Group1Admin,Group3Admin,Group7Admin"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

在RestrictedPage.aspx.cs中,如何检索包含Group1Admin,Group3Admin和Group7Admin的允许角色集合?

这就是为什么我问:

web.config正在处理页面的授权.这很好.但是我将会有几个这样的页面(比如RestrictedPage.aspx,RestrictedPage2.aspx,RestrictedPage3.aspx).这些页面中的每一个都将在其上进行自定义webcontrol.每个页面都有不同的允许角色.我的webcontrol有一个下拉列表.下拉列表中的选项取决于用户角色与页面允许角色的交集.

如下所述,使用XPath搜索web.config可能会有效.我只是希望有更多的框架.有点像SiteMap.当我在我的web.sitemap中放置角色时,我可以使用SiteMap.CurrentNode.Roles抓取它们(我的网站使用的是Windows身份验证,所以我不能使用web.sitemap进行安全修整,而是宁愿只保留一个角色文件).

解决方法

// set the configuration path to your config file
string configPath = "??";

Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);

// Get the object related to the <identity> section.
AuthorizationSection section = (AuthorizationSection)config.GetSection("system.web/authorization");

从section对象获取AuthorizationRuleCollection对象,然后在其中提取角色.

注意:您可能需要稍微修改该部分的路径,因为您从“location path =”RestrictedPage.aspx“”开始,我没有尝试这种情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读