1

如果用户未登录,为什么 HttpContext.Current.User.IsInRole("Customer") 返回 false,我认为因为用户被认为是匿名的,是这种情况,对吗?

谢谢

4

3 回答 3

5

是的,你是对的。匿名用户不能属于某个角色。

请注意,User匿名用户的对象是 a GenericPrincipal,当它实现IPrincipal时,该IsUserInRole方法总是返回 false,因为在创建它时没有提供任何角色FormsAuthenticationModule

另请注意,User经过身份验证的用户的对象是 a RolePrincipal,它RoleManager在中查询IsUserInRole

于 2010-05-18T11:08:10.930 回答
0

在用户没有登录到您的应用程序之前,应用程序将其视为匿名用户,并且该用户对于您的应用程序是未知的。

于 2010-05-18T11:14:07.770 回答
0

这是默认行为,匿名用户没有角色。

但是如果它返回 false 你不能确定用户没有通过身份验证(最好使用User.Identity.IsAuthenticated属性)。

于 2010-05-18T11:22:28.003 回答