我正在使用多個角色提供程序,標準SQL提供程序加上一個自定義的提供程序。在Global.asax中 - RoleManager_GetRoles我爲那些應該使用自定義提供程序並將提供程序名稱設置爲我的自定義提供程序的用戶創建RolePrincipal,並讓其他用戶按正常方式處理。Roles.GetRolesForUser僅調用默認角色提供者?
這幾乎可以工作,asp.net允許訪問通過web.config保護的頁面,並調用我的提供者來獲取角色列表。但是,當我在代碼中調用Roles.GetRolesForUser()
時,它似乎只會調用默認角色提供程序,而不是我的自定義提供程序。如果我將自定義提供程序設置爲默認提供程序,則會調用它,但只會調用它。
我已經解決了它,而不是枚舉角色提供程序並在提供程序上調用GetRolesForUser()
與RolePrincipal具有匹配的名稱,但在我看來,Roles.GetRolesForUser()
應該在默認情況下執行此操作。
我錯過了什麼嗎?
這是有道理的,並匹配我看到的行爲。不幸的是,我正在處理大量使用Roles.GetRolesForUser()的預先存在的代碼。 我猜是重新分解的時間。謝謝。 – Eddie 2009-12-15 18:07:05
沒問題。如果你得到的答案對你有幫助,你應該可以隨時加註。 ;) – womp 2009-12-15 18:41:18