2010-12-18 592 views
1

使用asp.net成員資格API當我調用Roles.GetRolesForUser();它什麼都不返回。當我撥打電話Roles.GetAllRoles()時,將返回所有角色。問題是什麼?還有什麼是使用會員api驗證用戶的正確方法?Roles.GetRolesForUser();返回空白

+0

的續前添加[InitializeSimpleMembership]您使用的是的applicationName http://weblogs.asp.net/scottgu/archive/2006/04/22/Always -set-the-_2200_applicationName_2200_-property-when-configurations-ASP.NET-2.0-Membership-and-other-Providers.aspx – 2010-12-18 21:55:02

+0

它應該返回一個空數組,而不是任何東西。你確定你使用的是正確的數據庫嗎?也許錯誤的連接字符串? – 2017-10-02 13:11:14

回答

0

Roles.GetRolesForUser()返回當前登錄用戶的角色。

1:確保您在登錄時執行它。

2:確保爲用戶分配角色。

對於你最好的方式問題,我不確定你在問什麼上下文。但基本上,如果您使用內置的ASP.NET登錄控件,則不必執行任何操作。如果需要,可以明確使用Membership.ValidateUser方法。需要注意的一點是,您需要在web.config中設置FormsAuthentication。

0

您是否使用IIS進行了託管並完成了匿名身份驗證?通常,任何安全提供商都將使用它找到的最簡單的一個。

它將從匿名開始,那麼如果它被禁用,那麼它會尋找窗體,然後是Windows。

內置於Visual Studio中的cassini web服務器會爲您做到這一點。