1

今天早上我和我的同事继续讨论当 RememberMe = false 时存储 auth cookie。

MVC4,表单认证,C#.Net,Visual Studio 2012,IIS 7.5,InProcess Session

  1. 用户登录,(RememberMe = false)并导航到应用程序中的项目。默认会话超时设置为 30 分钟,

  2. 用户复制了 URL 并关闭了浏览器(IE9)

  3. 打开新浏览器(IE9)并粘贴复制的 URL,UI 重定向到 loginPage。

这里我说在步骤 1 中创建的会话仍然有效。,在关闭浏览器时,浏览器丢失了 AuthCookie。

他说该会话也是基于浏览器会话创建的。我有点困惑。

请让我知道实际发生了什么。

抱歉英语不好

4

2 回答 2

3

RememberMe = false 表示发给用户的身份验证 cookie 不是持久的(cookie 的过期设置为“SESSION”)。也就是说,当浏览器会话结束时,cookie 会丢失。RememberMe = true 表示创建持久性 cookie 并跨多个浏览器会话保存(cookie 的到期时间设置为特定日期,通常在 web.config 中配置)。

在此处阅读文档

于 2012-12-28T17:08:40.750 回答
0

我假设您使用的是默认的Session-State Mode,即 InProc。一个会话生成一个SessionID,这个 ID 存储在一个 cookie 中。该 cookie 被发送给用户,当使用该 cookie 发出请求时,会话处于活动状态。ID 本身标识了唯一的浏览器,这就是为什么当您同时使用两个不同的浏览器时,您可以使用不同的帐户登录同一个网站。但是,您不能从同一浏览器的不同选项卡登录不同的帐户(除非该网站专门定制了他们的网站以支持该功能)。

通过关闭浏览器,此 cookie 将被删除,因此会话将在达到其超时期限时结束。您被带到 UI 页面的原因是因为您拥有的新 cookie 不再具有相同的会话 ID,因此,出于所有意图和目的,您是新用户。

于 2012-12-28T17:08:16.577 回答