0

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

4

1 回答 1

1

你应该使用:Request.IsAuthenticated

在此处查看 MSDN 。

此外,下面是从问题中得到的一个很好的解释:Request.IsAuthenticated 是如何工作的?

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

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

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

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

于 2013-07-28T02:43:50.717 回答