嗨,我对MVC 3比较陌生,我正在注销我的应用程序,我设法登录,即使在另一个标签页上打开网站,也能保持登录状态。
我的所有观点(当然除了家庭)都有:
<a href = "@Url.Action("Index", "Home")">Logout</a>
在我的控制器中我有这个:
public ViewResult Logout() { Session.Abandon(); return View("Index", "Home"); }
并且应用程序未注销,而是返回当前视图。
请帮助我了解该怎么做,我想注意我使用的是ViewResult而不是ActionResult,我也不会使用JavaScript或JQuery,因为我正在制作这个应用来展示MVC的工作原理。
答案 0 :(得分:2)
你不应该指出退出行动吗?
<a href = "@Url.Action("Logout", "Home")">Logout</a>
假设您退出操作的路径为\Home\Logout
<强>更新强>
另一种老式的方式是..
成功登录后..
Session["Login"] = true; //or any object that describes the user's identity
在每个页面上您需要检查
var login = Session["Login"];
if(Convert.ToBoolean(login)){ //or cast to your expected object
//do something
}
else{
//redirect to logout/login page
}
退出时,
Session["Login"] = null;
答案 1 :(得分:2)
如果您使用的是表单身份验证,则还应清除身份验证Cookie并在注销后重定向:
public ActionResult Logout()
{
Session.Abandon();
FormsAuthentication.SignOut();
return RedirectToAction("Index", "Home");
}