2012-01-18 42 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