【发布时间】:2016-05-15 22:34:33
【问题描述】:
由于某种未知原因,我无法再在 Chrome 上登录自己的应用程序。
这就是我登录的方式:
[AllowAnonymous]
[HttpPost]
public async Task<ActionResult> Login(LoginModel model)
{
if (User.Identity.IsAuthenticated)
return RedirectToAction("Index", "Home");
if (!ModelState.IsValid)
return View();
var status = await signInManager.PasswordSignInAsync(model.Login, model.Password, true, false);
switch (status)
{
case Microsoft.AspNet.Identity.Owin.SignInStatus.Success:
{
int userId = User.Identity.GetUserId<int>();
if (userManager.IsFirstLogin(userId))
{
return RedirectToAction("Declaration", "Home", new { returnUrl = model.ReturnUrl });
}
return RedirectToLocal(model.ReturnUrl);
}
default:
return View();
}
}
我调试了代码并且 PasswordSignInAsync 成功,但是 Chrome 显示没有为页面设置 cookie。实际上重定向到动作,用[Authorize]属性标记再次重定向到登录页面。
我在 IE 上测试了网站,一切正常,我可以登录和退出,并且 cookie 设置正确。
如果我能提供更详细的信息,请告诉我。
编辑:更多细节
我一直在测试一个对日期时间敏感的应用程序(在特定日期之后停止显示)。我将系统时间更改为 2016 年 8 月 1 日,登录然后切换回现在。那时一切都停止了。
奇怪的是,当我切换回那个未来的时间时,我可以再次登录并且会话 cookie 设置正确。但是当我回到“现在”时,我无法再次登录。
【问题讨论】:
-
在使用 Chrome 和 IE 时,Fiddler 跟踪显示有什么不同吗?
-
嗨@Spook,你解决了吗?我也遇到了类似的问题
-
@RicoW 我最终做到了,但那是很久以前的事了 :) 据我记得,我不得不强制擦除该站点的浏览器缓存。
-
你好 - 有谁知道解决这个问题的正确方法吗?
标签: asp.net google-chrome cookies asp.net-identity