加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Sitecore – 以编程方式清除用户的缓存

发布时间:2020-12-16 06:39:50 所属栏目:asp.Net 来源:网络整理
导读:我有一个自定义角色提供程序,用户可以在执行某些操作时更改特定用户的角色. 这导致了一些问题: 如果将角色添加到用户,则允许他们访问 在我清除sitecore缓存之前,这不会生效 手动使用/sitecore/admin/cache.aspx 我们正在缓存用户呈现的菜单栏.但是当权限 ??
我有一个自定义角色提供程序,用户可以在执行某些操作时更改特定用户的角色.

这导致了一些问题:

>如果将角色添加到用户,则允许他们访问
在我清除sitecore缓存之前,这不会生效
手动使用/sitecore/admin/cache.aspx
>我们正在缓存用户呈现的菜单栏.但是当权限
????更改,可能会添加新项目/删除项目,但这不会反映,因为它来自缓存版本.

有没有办法可以通过编程方式清除特定用户的sitecore缓存?

解决方法

是 – Sitecore执行此操作的方法是将用户详细信息添加到缓存键以进行渲染.这是存储在html缓存中,因此要清除它,您需要获取html缓存并清除包含用户名的所有条目.

这个代码片段会这样做:

// Need to clear the cache for the header and the user profile....
var htmlCache = CacheManager.GetHtmlCache(Context.Site);

// Remove all cache keys that contain the currently logged in user.
var cacheKey = $"#login:True_#user:{Context.GetUserName()}";
htmlCache.RemoveKeysContaining(cacheKey);

这将清除当前登录用户的html缓存中的所有条目.如果要清除其他用户,只需更改Context.GetUserName()以获取要清除的特定用户.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读