首页 > 解决方案 > 如何在基于角色的授权 asp.net 中从数据库而不是 Web 配置中读取角色?

问题描述

我们正在使用基于角色的旧设计系统,并从webconfig如下方式读取用户角色:

<authentication mode="Forms">
  <forms loginUrl="/UserMgmt/login" timeout="2880" defaultUrl="~/Transaction/Index" enableCrossAppRedirects="true" />
</authentication>
     <authorization>    
           <allow roles="Admin" />  
           <allow roles="VicePres" />      
           <deny users="*"/>    
      </authorization>    

我正在寻找一种方法来删除角色webconfig并将它们放在我的数据库表中。我知道它在某种程度上与IPrincipal方法有关IsInRole,但是经过数小时的谷歌搜索后,我无法理解这一点。

角色究竟在哪webconfig里绑定到安全上下文,我应该如何更改它?

基于微软文章:

使用基于角色的 URL 授权规则时,将对受基于角色的 URL 授权规则保护的页面的每个请求调用 RolePrincipal 的 IsInRole 方法

我已经实现IsInRole并且它在数据库查询对象中寻找角色并且工作正常,但是当角色从中删除时Web Config,用户登录失败。

标签: c#asp.net-membershiprole-base-authorization

解决方案


推荐阅读