【发布时间】:2017-08-16 02:43:50
【问题描述】:
请参阅下面的代码:
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
string UserId = User.Identity.GetUserId();
return RedirectToAction("ClientDetails","Home");
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", "Account", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
UserId 始终是 null,User.Identity.IsAuthenticated 始终是 false。但是我可以查看需要认证的View ClientDetails。
【问题讨论】:
-
您的站点设置是否适用于 Windows 身份验证?
-
@Daniel Sanchez No.
-
阅读本文stackoverflow.com/questions/8810496/…请先设置cookies
-
我试图做同样的事情。 Nitin 可能是正确的,但是这个链接stackoverflow.com/questions/14508495/… 更清楚地说明了“在调用 FormsAuthentication.SetAuthCookie() 之后的下一个请求之前,User.Identity.IsAuthenticated 不会设置为 true”(以防其他人出现有同样的问题。)
-
我也有同样的问题。我复制了样板代码并且几乎没有改变。当我运行样板登录操作时,一切都按预期工作。当我尝试复制的操作时,我知道 OP 会发生什么。
标签: asp.net-mvc asp.net-mvc-5.2