如何在用户从同一Web应用程序中的一个网站集转到另一个网站集时检测事件?

时间:2011-07-29 18:05:02

标签: asp.net sharepoint sharepoint-2010 httpmodule spsite

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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