禁用cookie时是否可以使用TempData?我有一个取决于TempData密钥的重定向检查,但是当禁用cookie时,该密钥始终为空。
答案 0 :(得分:0)
TempData是persist something between HTTP requests的一种方式。因为HTTP本质上是无状态的,所以如果没有办法识别客户端,就无法坚持下去。
TempData uses the Session as storage,默认情况下使用Cookie在HTTP请求之间保留用户的会话。每个请求中都包含一个cookie,其中包含该特定用户会话的密钥。
如果您希望TempData在没有cookie的情况下工作,您可以在web.config文件中设置cookieless="true"
标记的sessionState
属性。这会将查询字符串参数附加到站点中的每个链接以获得相同的结果。但是,它是not recommended,您将拥有issues if you're using MVC 4。
如果您希望它在不使用Cookie的情况下工作,请尽可能在目标网址上包含查询字符串参数。
答案 1 :(得分:0)
取决于TempDataProvider
的{{1}}。默认提供程序是Controller
,它依赖于常规的会话状态存储。
这基本上意味着如果禁用Cookie,除非您实施Cookie-less Session,否则您不会同时拥有SessionStateTempDataProvider
或Session
。