如何在ASP.NET Forms身份验证重定向上设置Cache-Control标头?

时间:2014-01-22 13:46:58

标签: asp.net authentication caching forms-authentication

我有一个使用标准表单身份验证的ASP.NET应用程序。想象一下以下场景

  1. 用户(未经过身份验证)请求http://myapp.com/Foo(要求用户进行身份验证)

  2. 回复:

    HTTP/1.1 302 Found 
    Cache-Control: private
    Content-Type: text/html; charset=utf-8
    Location: /Login?ReturnUrl=%2fFoo
    (rest of response headers and body omitted...)
  3. 用户登录。

  4. (稍后)用户(已通过身份验证)请求http://myapp.com/Foo

  5. 此时,我发现有时Chrome会缓存重定向和登录页面,因此会向已登录用户显示登录页面,而不向服务器发送请求。如果Chrome开发人员工具是开放的(因此我可以明确地证明它),似乎不会发生这种情况,但它可以解释我观察到的内容并可以从IIS日志中拼凑起来等。

    我相信我可以通过在302重定向响应中添加Cache-Control: no-cache标头来阻止Chrome执行此操作。我可以让Forms Auth模块执行此操作吗?

0 个答案:

没有答案