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