ASP.NET:自己实现的IsInRole

时间:2012-01-18 01:29:04

标签: asp.net authorization roles

抱歉我的英文。

是否可以覆盖asp.net中的逻辑IsInRole?我在数据库中使用自己的角色表,我想知道如何使用自己的逻辑。

继承自PrincipialBase之类的东西。也许你知道一些方法吗?

3 个答案:

答案 0 :(得分:3)

如果您使用的是ASP.NET身份验证和授权管理的其他方面,我只会使用RoleProvider。但是,如果您拥有自己的数据库来存储角色信息并且已经拥有用于管理用户角色的UI,那么您可以使用您的角色创建GenericPrincipal并在PostAuthenticateRequest期间用它替换HttpContext.Current.User(对于ASP.NET) )。

MVC略有不同,具体取决于您管理授权的方式。这是一个相关的问题。

application role management in asp.net mvc (How)?

最好为每个请求加载一次用户的所有角色,然后在请求期间多次检查数据库中的角色。

答案 1 :(得分:2)

然后您需要实现自定义RoleProvider。这是guide to implement a RoleProvider

答案 2 :(得分:0)

Microsoft发布了the source code for the default providers(成员资格,角色等)。 在实现您自己的提供程序时,这也是一个很好的参考。有一次我实现了自定义角色提供程序,它很适合我。