我正在尝试从 MVC Razor 中的会话注销,这是我目前 MainController 中的内容:
[HttpPost]
public ActionResult Login(Users user)
{
if (ModelState.IsValid)
{
if (ValidateUser(user.Email, user.Password))
{
FormsAuthentication.SetAuthCookie(user.Email, false);
return RedirectToAction("Index", "Members");
}
else
{
ModelState.AddModelError("", "");
}
}
return View();
}
private bool ValidateUser(string Email, string Password)
{
bool isValid = false;
using (var db = new ShareRideDBEntities())
{
var User = db.tblProfiles.FirstOrDefault(u => u.PROF_Email == Email);
var ut = db.tblProfilesTypes.FirstOrDefault(t => t.TPE_ID == User.PROF_UserType);
if (User != null)
{
if (User.PROF_Password == Password)
{
Session["UserID"] = User.PROF_UserID;
Session["Name"] = User.PROF_FirstName;
Session["Email"] = User.PROF_Email;
Session["FullName"] = User.PROF_FirstName + " " + User.PROF_LastName;
isValid = true;
}
}
}
return isValid;
}
这样我就可以登录用户并将其重定向到他的 UserCP 或用户控制面板。
我这样做是为了如果用户未登录,他们将无法使用我的 MembersController 中的以下代码访问会员区域:
public ActionResult UserCP()
{
if (Session["UserID"] == null)
{
return RedirectToAction("Index", "Main");
}
else
{
return View();
}
}
public ActionResult LogOut()
{
FormsAuthentication.SignOut();
return RedirectToAction("index", "main");
}
如果用户尚未登录,它会将用户重定向回主索引页面,但是当我测试注销按钮时,它会正常重定向我,但我仍然能够返回到用户控制面板,这就是我所做的不希望它发生。
当然我已经添加了
using System.Web.Security;
使用 FormsAuthentication.SignOut();
如果有人可以解释这一点,请提前致谢。