gpt4 book ai didi

c# - HttpContext.User.Identity.IsAuthenticated 永远不会为真

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

登录

[HttpPost]
public ActionResult Login(LoginModel loginModel)
{
if (ModelState.IsValid)
{
using (var _Db = new AccountContext())
{
var _UserAccount = _Db.UserAccounts.FirstOrDefault(u => u.Username == loginModel.Username && u.Password == loginModel.Password);

if (_UserAccount == null)
{
ModelState.AddModelError("", "Account doesn't exist!");
}
else
{
FormsAuthentication.SetAuthCookie(loginModel.Username, false);
}
}
}
return RedirectToAction("Index", "Home");
}

重定向或显示 View

public ActionResult Index()
{
if (HttpContext.User.Identity.IsAuthenticated)
{
return View("Index");
}
else
{
return RedirectToAction("LoginPage");
}
}

我已逐步完成代码,可以看到使用正确的用户名调用了 SetAuthCookie。FormsAuthentication.SetAuthCookie(loginModel.Username, false);

什么会阻止用户通过身份验证?

最佳答案

What could prevent the user from being authenticated?

一个可能的原因是如果您忘记在 web.config 中启用表单例份验证:

<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
...
</system.web>

您可能还想检查在调用 SetAuthCookie 方法后浏览器中是否发出了表单例份验证 cookie。默认情况下,此 cookie 将被称为 .ASPXAUTH。如果存在此类 cookie 且票证未过期,则 HttpContext.User.Identity.IsAuthenticated 方法将返回 true。

关于c# - HttpContext.User.Identity.IsAuthenticated 永远不会为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16471198/

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