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
。
所以,设置IsAuthenticated
为true
其实和登录是不一样的。
Jeff 说,当
生成身份验证票证并将其作为 cookie 发送到客户端。
(RedirectFromLoginPage
或 SetAuthCookie
)我们正在讨论的内容
IsAuthenticated
是对每个页面请求进行的身份验证。
当用户输入他们的凭据并收到一个
票,每个请求都会进行身份验证。
关于c# - Request.IsAuthenticated 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2201238/