MSDN代码示例说明:以下代码示例使用IsAuthenticated属性来确定当前请求是否已经过身份验证。如果尚未通过身份验证,请求将重定向到另一个页面,用户可以在其中将凭据输入Web应用程序。这是应用程序默认页面中使用的常用技术。
这很棒,但没有细节或任何东西......
究竟在检查什么?如何将其设置为true?
加倍努力:我在哪里可以找到更详细的文档?
答案 0 :(得分:58)
感谢Google,我在his answer找到了@keyboardP引用的帖子的缓存版本。由于原始链接已被破坏(2012-12-06),我在此处发布该答案/帖子作为其他人的参考。
Original question以下答案指的是:
我有一个基于表单的应用程序,让我适合。我注意到了,在 IsAuthenticated属性为True的位置,现在是 是的,并没有按预期工作。我想知道我是否有 设置无效??
任何人都可以告诉我什么将IsAuthenticated属性设置为True - 什么 登录的constitues。
Daniel Kent回答:
Request.IsAuthenticated
不仅适用于表单验证 - 它是有效的
无论使用何种类型的身份验证(Windows,Passport,
表格或我们自己的定制方案)
HttpRequest.IsAuthenticated
将为true
已经过身份验证。基本上,这个属性提供相同的
信息为Context.User.Identity.IsAuthenticated
。
在请求开始时,Context.User.Idenity
包含GenericIdentity
使用空用户名。此对象的IsAuthenticated
属性将
返回false
以便Request.IsAuthenticated
为false
。当一个
身份验证模块处理Application_AuthenticateRequest
事件和
successfuly验证用户替换GenericIdentity
in
Context.User.Identity
新的IIdentity
对象将返回true
它的IsAuthenticated
财产。然后Request.IsAuthenticated
将返回true
。
在Forms身份验证的情况下,表单身份验证模块使用
身份验证Cookie中包含的加密身份验证票证
验证用户。一旦它完成了这个,它就取代了
GenericIdentity
中的Context.User.Identity
FormsIdentity
对象
从True
属性返回IsAuthenticated
。
因此,将IsAuthenticated
设置为true
实际上与登录不同
杰夫说,登录表单身份验证时会发生
生成身份验证票证并将其作为cookie发送到客户端。
(RedirectFromLoginPage
或SetAuthCookie
)我们在谈论什么
IsAuthenticated
是每个页面请求发生的身份验证。
当用户输入他们的凭证并且被发出时,登录就会发生
票证,每次请求都会进行身份验证。
答案 1 :(得分:8)
丹尼尔肯特有一篇非常详细的文章here。 (片段)
Request.IsAuthenticated是 不仅仅是形式认证 - 它 无论什么类型的,都是有效的 正在使用身份验证(Windows, 护照,表格或我们自己的习俗 方案)
HttpRequest.IsAuthenticated将是 当用户发出请求时为true 已经过身份验证。实质上, 这家酒店提供相同的 信息为 Context.User.Identity.IsAuthenticated。