我有一个ASP.MVC应用程序。应用程序中有一些站点只能通过某些用户权限访问。如果用户没有所需的权限,我将重定向到另一个控制器并显示包含未授权消息的页面。
当用户未经许可尝试使用链接访问受限页面时,浏览器会缓存目标。因此,在点击此链接后,即使授予了权限,用户也将被重定向到“未授权”页面。浏览器直接跳到缓存目标。
我在服务器端禁用了缓存但是,在这种情况下这似乎不起作用,任何想法如何阻止浏览器记住链接目的地?
提前致谢, 康拉德
答案 0 :(得分:0)
如果没有看到你的代码,我就不能完全确定没有其他事情发生,但这是一个想法:
您可以在剃刀页面中以编程方式构建超链接,以便在每次刷新页面时构建唯一的URL。只需将?token = @ uniqueVar添加到url的末尾即可。代码不需要在代码中的任何位置使用,但如果您的uniqueVar是时间戳或Guid或其他内容,则您的网址每次都会有所不同。
答案 1 :(得分:0)
这种行为没有合理的理由发生。首先,检查以确保用户的权限与您认为的一样,并且您的重定向代码正常运行(这样,只有在用户确实未经授权的情况下才会重定向)。除此之外,请确保您使用临时重定向,而不是重定向永久重定向。虽然浏览器不应该决定只是无限地缓存结果页面,但如果您发送永久重定向,它可能会有更多的理由认为可能。