gpt4 book ai didi

asp.net-mvc - MVC 4 SimpleMembership - 为什么登录后 WebSecurity.CurrentUserId -1

转载 作者:行者123 更新时间:2023-12-04 07:40:40 24 4
gpt4 key购买 nike

我试图在登录时设置 cookie,但在登录后获取当前用户 ID 时遇到问题。在下面,intUserId 为 -1,WebSecurity.IsAuthenticated 为 false。这不是放置此代码的正确位置吗?在此之后,它重定向到主页...所以不知道为什么这不是正确的地方。

// POST: /Account/Login

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
//TODO: set current company and facility based on those this user has access to
int intUserId = WebSecurity.GetUserId(User.Identity.Name);
int intUserId2 = WebSecurity.GetUserId(model.UserName);
UserSessionPreferences.CurrentCompanyId = 1;
UserSessionPreferences.CurrentFacilityId = 1;

return RedirectToLocal(returnUrl);
}

// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}

最佳答案

登录仅设置表单例份验证 cookie。

asp.net 身份验证的工作方式是它必须读取 cookie 以设置对请求的身份验证,但是由于登录页面启动时 cookie 不存在,因此框架对用户一无所知。

重新加载页面,您会发现信息可用。

仅供引用,这对于 SimpleMembership 或 WebSecurity 来说并不是什么新鲜事,这就是 Forms 身份验证一直以来的工作方式。

关于asp.net-mvc - MVC 4 SimpleMembership - 为什么登录后 WebSecurity.CurrentUserId -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13850861/

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