【发布时间】:2014-04-21 09:02:09
【问题描述】:
我正在尝试仅在必要时在管道“httpRequestBegin”中执行一些操作。 我的处理器在 Sitecore 解析用户后执行(处理器类型 =“Sitecore.Pipelines.HttpRequest.UserResolver, Sitecore.Kernel”),因为如果 Sitecore 无法先解析它,我也在解析用户。
稍后,我想在管道“insertRenderings”中添加一些渲染,前提是执行了前一个管道中的操作(如果我解决了用户,显示一条消息),所以我试图保存一些“标志”第一步,检查第二步。 我的问题是,我在哪里可以存储该标志?我正在尝试找到某种“按请求”缓存...
到目前为止,我已经尝试过:
- 会话:错误,太早了,会话还不存在。
- Items (HttpContext.Current.Items):它也不起作用,我的项目在第二步没有。
到目前为止,我正在使用带有一些唯一键的应用程序缓存 (HttpContext.Current.Cache),但我不喜欢这种解决方案。
有人知道分享这个“旗帜”的更好方法吗?
【问题讨论】:
-
您能否更新您的问题以充实您在 httpRequestBegin 中所做的事情?另外,您的处理器在 httpRequestBegin 的哪个位置出现?
-
问题已更新。在执行完 sitecore 用户解析后,我正在解析用户。
-
您能否通过检查插入渲染处理器中的活动用户(可能是他们的域或角色)来解决问题?
-
用户属性上没有任何内容告诉我是“我”解决了它还是 sitecore 解决了。我曾考虑向配置文件添加一些属性,但我不喜欢将其物理存储在核心数据库中的想法。你知道是否可以将属性保存在内存中并在以后重用它们?
-
尝试使用
Sitecore.Context.Items收藏。
标签: sitecore