2011-05-20 140 views
1

是否可以使用內置的SqlRoleProvider以及自定義成員資格提供程序?這將如何完成?SqlRoleProvider +自定義成員資格提供程序

@mellamokb

合併兩者的某些方面?

同時使用它們嗎?是的(因此「使用內置的SqlRoleProvider以及自定義會員供應商」是我的問題的一部分)

從兩個角色閱讀角色?會員提供者與閱讀角色有什麼關係?

同時對他們進行身份驗證?角色提供者與身份驗證有什麼關係?

+0

含義?合併它們的某些方面?同時使用它們?從兩個角色閱讀角色?同時對他們進行身份驗證?你需要清楚地描述你的意圖以及你如何期待它的工作。 – mellamokb 2011-05-20 15:04:35

回答

0

會員提供者有 與閱讀角色有什麼關係?

什麼都沒有。

什麼是角色提供者必須做的 與身份驗證?

沒有

是的,你一定能使用SqlRoleProvider沿側您的自定義成員資格提供。他們都是獨立的。

內置的SqlMembership提供程序和SqlRoleProvider共享aspnet_Users和aspnet_Application表。使用SqlRoleProvider時,無論何時將用戶添加到角色,它都將檢查aspnet_Users表是否存在用戶(它將檢查用戶名+應用程序ID組合)。如果用戶不存在,它將爲您創建一個。如果用戶存在(這可能是用戶使用SqlMembershipProvider創建的情況),它只會將用戶添加到角色而不創建用戶。

再次,是的,它應該工作。

+0

謝謝。順便提一下,我的問題是修辭。 – 2011-05-20 17:19:04

0

我從來沒有試過這個,但根據我對SqlMembershipProvider和SqlRoleProvider的經驗,我會說這是可能的。不過,我相信SqlRoleProvider將要求您通過Aspnet_regsql.exe工具將成員資格數據庫存儲(或至少是鏡像)到架構設置中,因爲它將需要那些用於返回用戶列表的RoleProvider.FindUsersInRole等方法的表。

有關實現自定義的成員提供的信息,請參閱這篇文章:

MSDN: Implementing a Membership Provider

編輯:更多的我看這個樣子的SqlMembershipProvider和SqlRoleProvider之間相互作用的唯一水平更是在SQL DB級別,所以再次,只要您實現自定義MembershipProvider以像SqlMembershipProvider一樣的方式在SQL中存儲(或鏡像)您的用戶數據,您應該是黃金。

+0

爲了澄清起見:不,自定義成員資格提供程序無需反射SqlMembershipProvider。 – gbs 2011-05-20 17:26:04

+0

@gbs感謝您的答案中的信息,我不知道角色提供商會在添加用戶時爲您自動設置用戶。猜猜我應該看看RoleProvider存儲過程更密切一點。 – pseudocoder 2011-05-27 18:11:02

相關問題