MSDN代码样本描述:以下代码示例使用IsAuthenticated属性来确定当前请求是否已通过身份验证。如果尚未通过身份验证,则该请求将重定向到另一个页面,用户可以在其中将其凭据输入Web应用程序。这是应用程序默认页面中使用的一种常见技术。
很棒,但是没有细节或其他任何东西。
它到底在检查什么?如何将其设置为true?
加倍努力:在哪里可以找到关于此的更多详细文档?
最佳答案
感谢Google,我在his answer中找到了@keyboardP所引用帖子的缓存版本。由于原始链接已损坏(2012-12-06),我将在此处发布该答案/作为其他引用。
以下答案所指的 Original question:
我有一个基于表单的应用程序,非常适合我。我注意到
IsAuthenticated属性为True的位置,现在是
错误,并且未按预期工作。我想知道我是否有一个
设置无效?
谁能告诉我是什么将IsAuthenticated属性设置为True?
选区登录。
Daniel Kent回答:Request.IsAuthenticated
不仅用于表单例份验证-它是有效的
无论使用哪种身份验证类型(Windows,Passport,
表格或我们自己的自定义方案)
使用者提出要求时HttpRequest.IsAuthenticated
为true
已通过身份验证。本质上,此属性提供相同的
信息为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中包含的加密身份验证票证
验证用户身份。完成此操作后,它将替换GenericIdentity
中的Context.User.Identity
和FormsIdentity
对象
从其True
属性返回IsAuthenticated
。
因此,将IsAuthenticated
设置为true
实际上与登录不同。
Jeff说,登录表单例份验证时会发生
生成身份验证票证,并将其作为Cookie发送给客户端。
(RedirectFromLoginPage
或SetAuthCookie
)我们在谈论什么IsAuthenticated
是对每个页面请求进行的身份验证。
登录是在用户输入其凭据并被授予
凭单,身份验证随每个请求发生。
关于c# - Request.IsAuthenticated如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2201238/