0

禁用 cookie 时是否可以使用 TempData?我有一个依赖于 TempData 键的重定向检查,但是当禁用 cookie 时,该键始终为空。

4

2 回答 2

0

TempData 是一种在 HTTP 请求之间持久化某些内容的方法。因为 HTTP 本质上是无状态的,所以如果无法识别客户端,就无法持久化某些内容。

TempData使用 Session 作为存储,默认情况下使用 cookie 在 HTTP 请求之间保持用户的会话。每个请求中都包含一个 cookie,其中包含该特定用户会话的密钥。

如果您希望 TempData 在没有 cookie 的情况下工作,您可以在 web.config 文件中设置标记的cookieless="true"属性。sessionState这会将查询字符串参数附加到您网站中的每个链接以实现相同的结果。但是,不建议这样做,如果您使用的是 MVC 4,您会遇到问题。

如果您希望它在不使用 cookie 的情况下工作,请尽可能在目标 URL 上包含查询字符串参数。

于 2013-10-30T21:02:10.840 回答
0

这取决于TempDataProvider. Controller默认提供程序SessionStateTempDataProvider依赖于常规会话状态存储。

这基本上意味着如果 Cookies 被禁用,您将不会拥有这两者Session,或者TempData除非您实施Cookie-less Session

于 2013-10-30T21:03:23.753 回答