gpt4 book ai didi

c# - Request.IsAuthenticated 返回 false 除非页面刷新

转载 作者:行者123 更新时间:2023-11-30 17:01:07 25 4
gpt4 key购买 nike

作为我网页的用户登录/注销过程的一部分(使用标准 MVC 身份验证模块),我的观点如下:

if (Request.IsAuthenticated)
{
//logoff
}
else
{
//logon
}

但是,当我的用户成功登录并返回到该页面( View )时,Request.IsAuthentgicated getter 为 false 除非我刷新我的页面然后它等于 true 并按预期工作。

谁能解释为什么会这样,以及如何在不重新加载我的页面的情况下修复它?

最佳答案

对于实际执行登录的请求,Request.IsAuthenticated 属性将为 false;毕竟,用户在请求时未经身份验证。

这正是您所期望的,只是强调需要对登录过程进行细微的更改。不是在对登录的响应中呈现 View ,而是执行重定向(ASP.NET Web Forms 正是这样做的)...... RedirectResult 而不是 ViewResult

因此:

  1. 获取主页
    • Request.IsAuthenticated == false
  2. 获取登录
    • Request.IsAuthenticated == false
  3. POST 登录(实际验证)
    • Request.IsAuthenticated == false
    • 响应包含 auth cookie 并且是重定向到主页 (HTTP 302)
  4. 获取主页
    • 请求现在有 auth cookie
    • Request.IsAuthenticated == true

关于c# - Request.IsAuthenticated 返回 false 除非页面刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21441157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com