2010-05-18 60 views
1

爲什麼HttpContext.Current.User.IsInRole(「Customer」)在用戶未登錄時返回false,我想因爲用戶被認爲是匿名的,所以這種情況是正確的?IsInRole僅當用戶登錄時纔有效

謝謝

回答

5

是的,你是對的。匿名用戶不能屬於角色。

注意,User對象匿名用戶是一個GenericPrincipal同時它實現IPrincipal,因爲沒有當由FormsAuthenticationModule創建提供的角色的IsUserInRole方法始終返回false。

另請注意,經過身份驗證的用戶的User對象是RolePrincipal,該對象在IsUserInRole中查詢RoleManager

0

在用戶沒有登錄到您的應用程序之前,應用程序表現爲匿名用戶,並且該用戶對於您的應用程序不知道。

0

這是默認行爲,匿名用戶沒有角色。

但是,如果它返回false,您不能確定用戶未通過身份驗證(最好使用User.Identity.IsAuthenticated屬性)。

相關問題