2010-02-21 105 views
2

我正在基於ASP.NET角色提供程序創建自定義角色提供程序。我有3張桌子。一個用於用戶,一個用於角色,一個用於UsersInRoles。Users表沒有密碼列,因爲用戶使用ActiveDirectory進行了身份驗證。這是我迄今的做法。我不能讓cusstom角色提供者工作,任何人都有像我一樣的情況。你如何定製角色提供者與AD一起工作?使用ActiveDirectory身份驗證的自定義角色提供程序

回答

1

我做了什麼:創建一個繼承自System.Web.Security.RoleProvider的類,並在點擊: Roleprovider時從上下文菜單中選擇「Implement abstract class」。我只實施了方法GetRolesForUser(其他方法拋出NotImplementedException)。

在某個時候,我想我也需要實現MembershipProvider,但是對web.config的一個簡單補充修復了它(由於程序集不在GAC中,在type-attribute中,您只需要提及命名空間+類型名;不是組件的名稱和其他參數):

<configuration> 
    <system.web> 
    <roleManager enabled="true" defaultProvider="MyRoleProvider"> 
     <providers> 
     <clear /> 
     <add name="MyRoleProvider" type="Namespace.To.MyRoleProvider" /> 
     </providers> 
    </roleManager> 
    </system.web> 
</configuration> 

沒有必要執行關於一個MembershipProviderValideUser方法。

0

您應該能夠以覆蓋ValidateUser()方法的方式編寫角色提供程序,並強制它在那裏執行AD查找。之後,大部分內置的東西應該接管。

相關問題