已禁用Cookie的TempData

时间:2013-10-30 20:46:00

标签: c# tempdata

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

2 个答案:

答案 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,否则您不会同时拥有SessionStateTempDataProviderSession