我有一个由ajax调用调用的动作方法。
问题是授权操作过滤器在firefox的情况下重定向我,但在IE7中没有。问题是当我删除授权时,请求到达了操作方法。
我所做的是使用带有以下选项的输出缓存属性:(在其他stackoverflow问题中查看)
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
[Authorize]
但我仍然在IE7上遇到同样的问题(重定向不起作用)
我不知道web.config身份验证元素是否存在问题:
<authentication mode="Forms">
<forms loginUrl="Pages/LoginRegistration" timeout="2880" />
</authentication>
答案 0 :(得分:3)
IE默认缓存AJAX GET请求。如果您的初始回复没有指定Cache-Control
标头(与OutputCache
不同 - Cache-Control
控制浏览器的缓存,而不是服务器的),那么IE将不会再次请求它,因此您的授权不执行任何操作,因为浏览器实际上从未与服务器进行过对话。
因此,要么在回复中包含Cache-Control
HTTP标头,要么使用POST
。