c# - Request.IsAuthenticated 如何工作?

标签 c# asp.net httprequest

MSDN 代码示例说明:以下代码示例使用 IsAuthenticated 属性来确定当前请求是否已通过身份验证。如果尚未通过身份验证,请求将被重定向到另一个页面,用户可以在该页面中将其凭据输入到 Web 应用程序中。这是应用程序默认页面中常用的技术。

这很好,但没有细节或任何东西......

它到底在检查什么?如何将其设置为 true?

加倍努力:我在哪里可以找到关于此的更多详细文档?

最佳答案

感谢 Google,我找到了@keyboardP 在 his answer 中引用的帖子的缓存版本.由于原始链接已损坏 (2012-12-06),我将在此处发布该答案/帖子作为其他人的引用。

Original question下面的答案是指:

我有一个基于表单的应用程序,非常适合我。我注意到,在 IsAuthenticated 属性为 True 的位置,现在为 false 并且没有按预期工作。我想知道我是否有 无效的设置??

谁能告诉我是什么将 IsAuthenticated 属性设置为 True——什么 构成登录。

丹尼尔·肯特的回答:

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

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

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

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

所以,设置IsAuthenticatedtrue其实和登录是不一样的。 Jeff 说,当 生成身份验证票证并将其作为 cookie 发送到客户端。 (RedirectFromLoginPageSetAuthCookie)我们正在讨论的内容 IsAuthenticated 是对每个页面请求进行的身份验证。 当用户输入他们的凭据并收到一个 票,每个请求都会进行身份验证。

关于c# - Request.IsAuthenticated 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2201238/

相关文章:

c# - 用数据库中的项目填充复选框列表?

c# - 如何在 navigateURL 属性的 HyperLink 控件中传递隐藏字段值?

asp.net - 使用 Paypal 订阅(Netflix 风格)

c# - 为什么无法序列化 DataTable。未设置数据表名称?

image - 很少有大图像与许多小图像

java - 通过 HttpGet 持续连接?

c# - dotnetrdf 中的 SPARQL 查询不查询导入的本体

c# - 使用 Task.WhenAny 计算超时时如何获取任务结果

c# - 从头开始创建面向方面的属性/方法

tomcat - 实时获取 J2EE Http 请求的堆栈跟踪