我很困惑如何实现这个功能。最初,当用户访问网站时,他们会看到登录页面。
[HttpGet]
public ActionResult SignIn()
{
return View() ;
}
当用户输入详细信息时,它会调用:
[HttpPost]
public ActionResult Sign(SignInModel signInModel)
{
if(service.ValidateUser(signInModel.userName,signInModel.passWord))
{
FormsAuthentication.SetAuthCookie(signInModel.userName, true);return
return RedirectToAction("Index", "Home");
}
}
但是,作为测试,我决定返回登录页面,因此localhost/Account/SignIn,但它不会将我重定向回主页..所以我尝试了一些来自 SO 的类似问题的建议答案:
[HttpGet]
public ActionResult SignIn()
{
if(HttpContext.User.Identity.IsAuthenticated)
{
return RedirectToAction("Index", "Home");
}
return View() ;
}
但我不明白它是如何工作的,所以我决定调试它。但事实证明它使用了错误的Identity
.
为了解释,我使用默认的 MVC 模板来让我的项目正常工作,我在该模板上使用 James 登录。然而,在我自己的项目中,我使用 Peter 登录。
但是HttpContext.User.Identity
在我自己的项目中是指默认网站的詹姆斯而不是彼得..所以那里显然有问题,但是什么?
TL;DR 我如何保留 StackOverflow 之类的信息?只有在会话到期或用户退出时,用户才能看到登录页面。