爲什麼HttpContext.Current.User.IsInRole(「Customer」)在用戶未登錄時返回false,我想因爲用戶被認爲是匿名的,所以這種情況是正確的?IsInRole僅當用戶登錄時纔有效
謝謝
爲什麼HttpContext.Current.User.IsInRole(「Customer」)在用戶未登錄時返回false,我想因爲用戶被認爲是匿名的,所以這種情況是正確的?IsInRole僅當用戶登錄時纔有效
謝謝
是的,你是對的。匿名用戶不能屬於角色。
注意,User
對象匿名用戶是一個GenericPrincipal
同時它實現IPrincipal
,因爲沒有當由FormsAuthenticationModule
創建提供的角色的IsUserInRole
方法始終返回false。
另請注意,經過身份驗證的用戶的User
對象是RolePrincipal
,該對象在IsUserInRole
中查詢RoleManager
。
在用戶沒有登錄到您的應用程序之前,應用程序表現爲匿名用戶,並且該用戶對於您的應用程序不知道。
這是默認行爲,匿名用戶沒有角色。
但是,如果它返回false,您不能確定用戶未通過身份驗證(最好使用User.Identity.IsAuthenticated屬性)。