当前位置:  开发笔记 > 后端 > 正文

ASP.NET MVC缓存因身份验证而异

如何解决《ASP.NETMVC缓存因身份验证而异》经验,为你挑选了1个好方法。

我在最近推出的微型webapp上使用ASP.NET Preview 5(将很快升级到Beta)和LINQ2SQL .

我为自己的工作感到非常自豪,直到Silverlight.net在第一页上展示它并且它开始接收的访问者数量不多.

由于某种原因,用户有时会得到LINQ2SQL抛出的"指定强制转换无效" - 这是因为未经身份验证的用户被视为"访客"用户,并且Controller正在为每个匹配加载有关用户"访客"的信息.

在第一页中,顶部有一个"欢迎[USERNAME]",可以使用Donut Caching轻松缓存.

但是,在中间,有一个"什么是Dudlers.com"块,它应该只显示给未经身份验证的用户,另一个"关于你"块只应显示给经过身份验证的用户.这些块太复杂了,无法使用Donut Caching缓存; 它们太不同了,它会非常凌乱.

我想根据用户的身份验证状态缓存第一个.因此,未经身份验证的用户(不用说,大多数)获得"访客"缓存页面,其他经过身份验证的用户将显示一个新的非缓存页面.

是否可以通过身份验证指定缓存?类似的东西:[OutputCache(VaryBy = Authentication)]

或者是否有另一个非ASPP.NET MVC解决方案?(也许调整MS SQL)

我希望我的问题很明确.我在同一台专用服务器上运行Windows 2003和MS SQL 2005 Express.

谢谢!



1> Ben Scheirma..:

您不必使用甜甜圈缓存机制.ASP.NET提供了VaryByCustom选项,允许您确定如何更改缓存.

查看更多信息:http://aspadvice.com/blogs/ssmith/archive/2007/10/29/VaryByCustom-Caching-By-User.aspx

应该适用于ASP.NET MVC.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有