首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Asp.Net条件URL角色认证

Asp.Net条件URL角色认证
EN

Stack Overflow用户
提问于 2009-07-23 15:28:45
回答 3查看 762关注 0票数 0

我希望限制对特定url的访问,除非用户是两个不同角色的成员。在这种情况下,我只希望在用户同时处于Reporting 存档角色的情况下授予对此url的访问权限。在ASP.net中有办法做到这一点吗?

代码语言:javascript
运行
复制
<location path="testpage.aspx">
<system.web>
  <authorization>
    <allow roles="Reporting, Archiving"/>
    <deny users="*"/>
  </authorization>
</system.web>

我想要这样的东西:

代码语言:javascript
运行
复制
<location path="testpage.aspx">
<system.web>
  <authorization>
    <allow roles="Reporting & Archiving"/>
    <deny users="*"/>
  </authorization>
</system.web>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-23 17:38:09

这有点难看,但您可以从当前使用的角色提供程序(SqlRoleProvider、WindowsTokenRoleProvider、AuthorizationStoreRoleProvider)继承、重写GetRolesForUser、调用基本实现来获取角色,并根据需要将它们组合在一起。然后将自定义角色提供程序明显地放在配置部分的web.config中。

您只需要覆盖一个方法(也可能是GetUsersInRole),并根据需要组合它们。

代码语言:javascript
运行
复制
public override string[] GetRolesForUser( string username ) {
    List<string> roles = new List<string>( base.GetRolesForUser(username) );
    if( roles.Contains("Reporting") && roles.Contains("Archiving") ) {
        roles.Add("ReportingAndArchiving");
    }
    return roles.ToArray();
}
票数 1
EN

Stack Overflow用户

发布于 2009-07-23 15:42:22

您可以创建一个SQL函数,该函数给定特定的用户ID、页面URL和允许的角色列表(XML),返回一个比特,指示是否授予该URL访问权,然后使用该函数设置一个标志,该标志将确定是否在javascript或DHTML菜单中将其显示为有效的选择。

票数 0
EN

Stack Overflow用户

发布于 2009-07-23 16:04:13

你可以实现自定义角色提供程序。然后,您可以定义新的“假”角色ReportingAndArchiving,并在请求IsUserInRole角色时检查用户是否属于IsUserInRole方法中的报告和存档角色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1172598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档