0

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

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

显然,如果用户经过身份验证,元刷新标头也将不起作用,因为页面将首先缓存而没有标头。

是否有任何方法可以缓存登录页面,但如果用户登录,也可以重定向,而不使用查询参数,或者条件 GET 是唯一的方法吗?

4

1 回答 1

1

您可以使用带有 VaryByCustom 参数的OutputCacheAttribute

如果将其设置为“IsAuthenticated”之类的内容,然后在 Global.asax 文件中定义GetVaryByCustomString方法,并根据用户是否经过身份验证返回字符串“True”或“False”。

事实上,以下博客文章回答了您的确切问题:阅读本文

于 2013-01-07T09:55:05.843 回答