检查数据存储中用户是否存在以进行身份​​验证

时间:2013-07-28 01:55:25

标签: asp.net asp.net-mvc-3 authentication asp.net-mvc-4

如何检查用户是否经过身份验证。 Asp.net告诉我,用户已获得授权如果设置了cookie,但我需要检查一个用户是否在我的数据存储中具有该名称。我在哪里可以添加额外的支票?

1 个答案:

答案 0 :(得分:1)

您应该使用:Request.IsAuthenticated

检查MSDN here

另外,下面是一个很好的解释:How does Request.IsAuthenticated work?

Request.IsAuthenticated不仅适用于表单身份验证 - 无论使用何种类型的身份验证(Windows,Passport,Forms或我们自己的自定义方案),它都有效

当发出请求的用户已通过身份验证时,HttpRequest.IsAuthenticated将为true。本质上,此属性提供与Context.User.Identity.IsAuthenticated相同的信息。

在请求开始时,Context.User.Idenity包含具有空用户名的GenericIdentity。此对象的IsAuthenticated属性将返回false,因此Request.IsAuthenticated将为false。当身份验证模块处理Application_AuthenticateRequest事件并成功对用户进行身份验证时,它会使用新的IIdentity对象替换Context.User.Identity中的GenericIdentity,该对象将从其IsAuthenticated属性返回true。然后Request.IsAuthenticated将返回true。

在表单身份验证的情况下,表单身份验证模块使用身份验证cookie中包含的加密身份验证票证来验证用户身份。完成此操作后,它会将Context.User.Identity中的GenericIdentity替换为从其IsAuthenticated属性返回True的FormsIdentity对象。