2012-01-18 38 views
1

对不起,我的英文。ASP.NET:自己实现IsInRole

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

类似于继承PrincipialBase。也许你知道一些方法?

回答

3

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

MVC稍有不同,这取决于您如何管理授权。这是一个相关的问题。

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

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

0

微软发布the source code for the default providers(会员,角色等)。 这也是实施自己的提供商时的一个很好的参考。有一次我实现了一个自定义的角色提供者,它为我提供了很好的服务。

+0

不幸的是,指定页面的链接被破坏。 – 2012-01-18 03:11:53

+1

我只是试过,他们做的工作。这是下载URL,以防万一http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi – santiagoIT 2012-01-18 03:20:43