如果用户已通过身份验证,则使用重定向缓存匿名页面

时间:2013-01-07 09:10:38

标签: asp.net asp.net-mvc http-caching

我想在我们的asp.net mvc网站的目标网页上使用页面缓存。此页面仅供匿名用户访问。但是,如果用户已登录,我希望此页面重定向到经过身份验证的用户主页。

问题是,如果我缓存登录页面,登录用户仍然可以访问此页面,因为它已缓存在浏览器上。

显然,如果用户通过身份验证,则元刷新标头也将无效,因为页面将首先缓存而没有标头。

有没有办法缓存目标网页,但是如果用户登录时重定向,不使用查询参数,或者条件GET是唯一的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用OutputCacheAttribute和VaryByCustom参数。

如果将其设置为“IsAuthenticated”,然后在Global.asax文件中定义GetVaryByCustomString方法,并返回“True”或“False”字符串,具体取决于用户是否经过身份验证或也许不是。

事实上,以下博客文章会回答您的确切问题:Read This