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,该对象将从以下位置返回trueIsAuthenticated属性。 Request.IsAuthenticated然后将返回true

对于表单例份验证,表单例份验证模块使用
身份验证cookie中包含的加密身份验证票证
验证用户身份。完成此操作后,它将替换GenericIdentity中的Context.User.IdentityFormsIdentity对象
从其True属性返回IsAuthenticated

因此,将IsAuthenticated设置为true实际上与登录不同。
Jeff说,登录表单例份验证时会发生
生成身份验证票证,并将其作为Cookie发送给客户端。
(RedirectFromLoginPageSetAuthCookie)我们在谈论什么IsAuthenticated是对每个页面请求进行的身份验证。
登录是在用户输入其凭据并被授予
凭单,身份验证随每个请求发生。

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

10-11 06:42