SignInManager.PasswordSignInAsync对我说谎

时间:2015-04-29 13:53:53

标签: asp.net-mvc authentication

我一直在使用此代码登录:

//
// GET: /Account/Login
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
    ViewBag.ReturnUrl = returnUrl;
    return View();
}

//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }

    // This doesn't count login failures towards account lockout
    // To enable password failures to trigger account lockout, change to shouldLockout: true
    var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
    switch (result)
    {
        case SignInStatus.Success:
            return RedirectToLocal(returnUrl);
        case SignInStatus.LockedOut:
            return View("Lockout");
        case SignInStatus.RequiresVerification:
            return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
        case SignInStatus.Failure:
        default:
            ModelState.AddModelError("", Account.LoginFailure);
            return View(model);
    }
}

这是Visual Studio MVC应用程序模板附带的代码。它一直工作到一天突然停止工作。我已通过此代码调试SignInManager.PasswordSignInAsync返回Success,但在以下请求中,我尚未登录。

更新

我搁置了所有待处理的更改,但仍然无法登录。我是唯一一个处理此代码的人。这不是我在做什么。

进一步更新:

此代码适用于我的同事机器。当我将它发布到登台服务器时,它可以工作。它只是无法在我的电脑上工作。

1 个答案:

答案 0 :(得分:1)

即使这篇文章很老,我也遇到了同样的问题,所以希望它可以帮助我发布的帖子。

我遇到了类似的问题,但我没有在线测试,只有本地测试。我使用Chrome作为主要开发浏览器。 长话短说,我发现在我清除密码管理器(Dashlane)的所有可能性后,一切正常。所以对我而言,清除网站上的所有内容以及清除密码管理器中的密码是一种奇怪的组合。 希望这可以帮助将来的某个人。