C# 表单身份验证中的表单 cookie 与会话 cookie

Form cookie vs Session cookie in C# form authentication

我正在用 C# 开发一个实现表单身份验证的 .NET MVC Web 应用程序。

我的 web.config 文件中有以下配置:

<authentication mode="Forms">
  <forms loginUrl="~/Home/Register" timeout="10080" name="Test" slidingExpiration="true"/>
</authentication>
<sessionState cookieName="Test" timeout="5040"/>

我有一些问题:

  1. session state cookie name 和 form cookie name 使用相同的名称是可以的,否则会导致超时等参数 problems/collisions?
  2. 设置slidingExpiration="true"会导致超时自动更新还是需要在后台调用一些特殊函数?
  3. 我已阅读此答案的第二条评论:。所以我将表单身份验证 cookie 超时设置为会话超时的两倍。我的做法正确吗?
  1. 为两个 cookie 设置相同的名称会导致问题,请避免,为两个 cookie 设置唯一的名称

  2. Cookie 将自动更新,但当然只能在请求时更新。只要没有来自浏览器的请求,就没有什么可以更新的。续订只是发布一个覆盖旧 cookie 的新 cookie。

编辑: 不确定为什么不清楚。也许这会有所帮助:浏览器发出请求,服务器发现 cookie 有效但即将过期。所以服务器发出一个新的cookie。形式上,它是自动执行此操作的表单身份验证模块。

  1. 表单 cookie 超时和会话状态超时完全不相关,没有任何规则可以使一个依赖另一个。