为什么关闭浏览器窗口后非永久性cookie不会过期?

时间:2018-08-27 05:48:05

标签: c# asp.net asp.net-mvc logging cookies

从网络上,我了解到有两种Cookie:持久性Cookie和非持久性Cookie。如果我未指定有效期限,则会创建非持久性Cookie。我还了解到,一旦关闭浏览器,非持久性Cookie就会被删除,但就我而言,即使我关闭了浏览器窗口,我仍然可以导航到我的应用程序而无需成功登录。

public ActionResult Index(Login userLogin)
{
    if (ModelState.IsValid)
    {
        Login Login = loginBusinessLayer.GetUserLogin(userLogin.UserId, userLogin.UserName);
        if (Login.UserPassword == userLogin.UserPassword)
        {
            Session["UserLogin"] = Login;
            User user = userBusinessLayer.GetUser(Login.UserId);
            Role role = roleBusinessLayer.Roles.Single(rle => rle.RoleId == user.RoleId);
            Session["Role"] = role;

            HttpCookie cookie = new HttpCookie("UserLogin");
            cookie["LoginId"] = Convert.ToString(Login.UserId);
            cookie["RoleId"] = Convert.ToString(role.RoleId);
            Response.Cookies.Add(cookie);
            return RedirectToAction("Success", "Login");
        }
        else
        {
            return View();
        }
    }
    return View();
}

1 个答案:

答案 0 :(得分:0)

即使关闭了所有可见的Windows,现代浏览器仍继续在后台运行。例如,需要从任务栏中的小通知图标关闭Windows上的Google Chrome,才能真正关闭它。完成后,将删除会话cookie。

根据记录,您的登录方法包含许多安全漏洞。我希望这只是一个例子。使用asp.net中的内置库:Asp.NET身份和Owin提供程序。