如果用户未登录,为什么 HttpContext.Current.User.IsInRole("Customer") 返回 false,我认为因为用户被认为是匿名的,是这种情况,对吗?
谢谢
如果用户未登录,为什么 HttpContext.Current.User.IsInRole("Customer") 返回 false,我认为因为用户被认为是匿名的,是这种情况,对吗?
谢谢
是的,你是对的。匿名用户不能属于某个角色。
请注意,User匿名用户的对象是 a GenericPrincipal,当它实现IPrincipal时,该IsUserInRole方法总是返回 false,因为在创建它时没有提供任何角色FormsAuthenticationModule。
另请注意,User经过身份验证的用户的对象是 a RolePrincipal,它RoleManager在中查询IsUserInRole。
在用户没有登录到您的应用程序之前,应用程序将其视为匿名用户,并且该用户对于您的应用程序是未知的。
这是默认行为,匿名用户没有角色。
但是如果它返回 false 你不能确定用户没有通过身份验证(最好使用User.Identity.IsAuthenticated属性)。