2011-06-30 86 views
1

我之前沒有在ActiveDirectory成員資格提供程序上工作過,我對使用AD成員資格提供程序創建應用程序存在疑問。如果我需要在不同的表中使用外部引用(可以說一個自定義角色表),那麼應該使用哪個主標識符(外鍵)來標識包含角色和用戶關係的表中的用戶。Active Directory身份驗證和自定義角色

而且,這裏是附加信息(比AD細節等)有關用戶的存儲如用戶名,部門,目前項目等

是在經常拍攝並存儲在一個表中的Active Directory快照在sql連接中使用的數據庫?

+0

你問關於aspnet會員供應商數據庫嗎? – Jayesh

+0

@Jayesh:這就是我困惑的..如果我從Active目錄中拉用戶,我是否需要將它們全部複製到成員資格提供程序數據庫中的某個用戶表中。問題是我應該如何在其他引用了用戶的表中引用用戶。 –

回答

1

基地成員提供者(及其衍生提供商如ActiveDirectoryMembershipProvider)使用的用戶名一個功能鍵(查詢成員期望UserName作爲關鍵查詢參數並返回一個MembershipUser對象)。這些查詢返回具有基本成員資格信息—(包括角色,電子郵件,註釋等)的MemberShipUser對象。如果要將ADMembership Provider與額外信息結合使用,最好使用UserName作爲密鑰。如果使用數據庫,則存儲額外數據會更容易,因爲.UpdateUser僅提交電子郵件,評論和IsApproved屬性。

並且不,不會拍攝快照,儘管您可以根據需要啓用緩存。供應商在需要信息時直接查詢AD。

+0

感謝您的解釋。 +1 –

0

創建時的aspnet成員資格數據庫駐留在App_Data文件夾中,非常方便,因爲它支持所有的Login控件。用戶角色可以很好地由aspnet配置管理器進行管理。配置文件屬性全部由數據庫本身管理。

由此創建的數據庫可以在服務器連接中看到。如果你分析數據庫,你會看到每個用戶都有一個特定的userId,除了用戶名。他們都是獨一無二的。您不需要複製其他表中的所有用戶數據。您可以使用連接指定相關數據。一旦用戶登錄,您可以在您的代碼後面通過User.Identity.Name(c#)推薦他/她。

請查看使用服務器資源管理器在Visual Studio中的數據庫表,您可以查看錶結構 - aspnet_Users, aspnet_Membership, aspnet_Profile等等

+0

我從SqlMembership提供者瞭解它,但是如果我的活動目錄中的總用戶數在25,000左右,那該怎麼辦。我是否需要將它們複製到我的aspnet_Users –

+0

@Kunal我對此評論有困惑。請澄清我通過活動目錄引用了什麼? – Jayesh

相關問題