【发布时间】:2012-02-12 19:31:08
【问题描述】:
是否可以覆盖 asp.net 中的 IsInRole 逻辑?我在数据库中使用自己的角色表,我想知道如何使用自己的逻辑。
类似于从 PrincipialBase 继承的东西。你知道一些方法吗?
【问题讨论】:
标签: asp.net authorization roles
是否可以覆盖 asp.net 中的 IsInRole 逻辑?我在数据库中使用自己的角色表,我想知道如何使用自己的逻辑。
类似于从 PrincipialBase 继承的东西。你知道一些方法吗?
【问题讨论】:
标签: asp.net authorization roles
Microsoft 发布了the source code for the default providers(成员资格、角色等...)。 在实现您自己的提供程序时,这也是一个很好的参考。有一次我实现了一个自定义角色提供程序,它对我很有帮助。
【讨论】:
如果您使用 ASP.NET 身份验证和授权管理的其他方面,我只会使用 RoleProvider。但是,如果您有自己的数据库来存储角色信息并且已经有一个用于管理用户角色的 UI,那么您只需使用您的角色创建一个 GenericPrincipal 并在 PostAuthenticateRequest 期间用它替换 HttpContext.Current.User (对于 ASP.NET )。
MVC 略有不同,具体取决于您管理授权的方式。这是一个相关的问题。
application role management in asp.net mvc (How)?
最好为每个请求加载一次用户的所有角色,然后在请求期间根据数据库多次检查角色。
【讨论】:
那么你需要实现一个自定义的RoleProvider。这是guide to implement a RoleProvider。
【讨论】: