1

我基本上在做的是创建一个cookie并使用表单身份验证。

这就是我用来创建 cookie 的内容。

            Session.Add("username", userName);
            Session.Add("password", passWord);

            FormsAuthenticationTicket tkt;
            string cookiestr;
            HttpCookie ck;
            tkt = new FormsAuthenticationTicket(1, userName, DateTime.Now,
            DateTime.Now.AddMinutes(1), false, "your custom data");
            cookiestr = FormsAuthentication.Encrypt(tkt);
            ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr);
            ck.Path = FormsAuthentication.FormsCookiePath;
            Response.Cookies.Add(ck);`

因为我正在登录安全的东西,所以我想要发生的是当浏览器关闭以删除该站点创建的 cookie 时。但是,这不会发生,我可以登录到我网站的安全部分。

我错过了什么?

基本上,如果我登录 /secure/secure.aspx 然后关闭我的浏览器,我可以输入 www.myaddress.com/secure/secure.aspx 并且我会登录。我 100% 肯定它会拒绝如果用户从未登录过,则为用户。

4

1 回答 1

0

该行为由浏览器设置控制。您可以控制作者 cookie 何时过期,但现在何时从客户端计算机中删除。

一种策略是将 cookie 设置为对每个请求在 X 分钟内过期。这样,如果用户在站点上处于非活动状态超过 X 分钟,他们将不得不再次登录。

于 2013-04-12T17:25:36.007 回答