3

我在同一个 Web 应用程序中有多个网站集,当用户从一个网站集转到另一个网站集时,我需要处理事件。我需要它来执行特定操作,例如设置“lcid”cookie 以更改站点的默认语言并将值声明为用户属性映射。

目前我正在使用自定义 HTTP 模块,该模块处理所有 PostAuthorize Web 应用程序请求并检查当前用户和网站集,保存集合中每个用户的最后访问网站,并在检测到网站集之间的转换时为订阅者触发自定义事件。

但我认为这种方法会降低 Web 应用程序的性能。从日志中我看到,即使用户只是单击其他网站集中页面的链接,也会有很多 PostAuthorize 请求。此外,在类似情况下,有时会有一系列请求“下一个”网站集,然后是“上一个”,然后又是“下一个”。当此模块处于活动状态时,SharePoint Designer(无法编辑页面)也会出现一些问题。

你能给我一个更好的方法来完成这项任务的建议吗?提前致谢。

4

1 回答 1

1

一种方法是使用隐藏控件和 cookie。
在所有目标站点集合的所有母版页中保留一个隐藏控件。此控件将检查当前网站集 url 并将其保存在 cookie 中。可能在您存储 lcid 的同一个 cookie 中。
从下一次加载开始,它将尝试匹配 cookie 中的 url 和当前网站集 url。如果不同,请调用您要执行的代码并更新 cookie 中的 url。
这将比 httpmodule 在性能上轻得多。

于 2011-12-15T08:17:09.730 回答