【发布时间】:2010-09-22 08:25:08
【问题描述】:
我在我最近的launched tiny webapp 上使用带有 LINQ2SQL 的 ASP.NET Preview 5(即将升级到 Beta)。
我为自己的工作感到非常自豪,直到 Silverlight.net 在首页上展示了它,并且它开始接收到数量不多的访问者。
出于某种原因,用户有时会收到 LINQ2SQL 抛出的“指定的强制转换无效”——这是因为未经身份验证的用户被视为“访客”用户,并且控制器正在为每次点击加载有关用户“访客”的信息.
在首页顶部有一个“Welcome [USERNAME]”,可以使用Donut Caching轻松缓存。
但是,在中间,有一个“什么是 Dudlers.com”块,应该只向未经身份验证的用户显示,另一个“关于你”块应该只向经过身份验证的用户显示。这些块太复杂了,无法使用 Donut Caching 进行缓存;它们太不一样了,会很乱。
我想根据用户的身份验证状态缓存第一个。因此,未经身份验证的用户(不用说,大多数)会获得“访客”缓存页面,而其他经过身份验证的用户会看到一个新的非缓存页面。
是否有一个选项可以指定因身份验证而异的缓存?就像是: [OutputCache(VaryBy = Authentication)]
或者还有其他非 ASP.NET MVC 解决方案吗? (也许调整 MS SQL)
我希望我的问题很清楚。 我在同一台专用服务器上运行 Windows 2003 和 MS SQL 2005 Express。
谢谢!
【问题讨论】:
-
您是否设法让甜甜圈缓存启动并运行?
标签: sql-server asp.net-mvc linq-to-sql caching