gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 07:54:54 28 4
gpt4 key购买 nike

我最近在 launched tiny webapp 上使用 ASP.NET Preview 5(即将升级到 Beta)和 LINQ2SQL .

我对自己的工作感到非常自豪,直到 Silverlight.net 将其放在首页上,并且访问者数量开始变得微乎其微。

出于某种原因,用户有时会收到 LINQ2SQL 抛出的“指定转换无效” - 这是因为未经身份验证的用户被视为“ guest ”用户,并且 Controller 正在为每次命中加载有关用户“ guest ”的信息.

在第一页中,顶部有一个“欢迎[用户名]”,可以使用 Donut Caching 轻松缓存。 .

但是,在中间,有一个“什么是 Dudlers.com” block ,应该只向未经身份验证的用户显示,另一个“关于您” block 应该只向经过身份验证的用户显示。这些 block 太复杂,无法使用 Donut Caching 进行缓存;它们差别太大,会很困惑。

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

是否有一个选项可以指定因身份验证而异的缓存?就像是:[OutputCache(VaryBy = 身份验证)]

或者还有其他非 ASP.NET MVC 解决方案吗? (也许调整 MS SQL)

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

谢谢!

最佳答案

您不必使用 donut 缓存机制。 ASP.NET 具有 VaryByCustom 选项,允许您确定如何改变缓存。

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

对于 ASP.NET MVC 应该可以正常工作。

关于sql-server - ASP.NET MVC 缓存因身份验证而异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/290098/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com