asp.net - 当用户在同一个 Web 应用程序中从一个网站集转到另一个网站集时,如何检测事件?

标签 asp.net sharepoint sharepoint-2010 httpmodule spsite

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

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

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

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

最佳答案

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

关于asp.net - 当用户在同一个 Web 应用程序中从一个网站集转到另一个网站集时,如何检测事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877159/

相关文章:

asp.net - 在 Web 应用程序中启用长路径

c# - ASP.NET 登录状态 : logout not working

javascript - 从 Sharepoint 外部使用 Sharepoint REST API 和 Javascript 上传文件?

javascript - 如何将确认框添加到我的 Sharepoint 页面,其中确认具有额外的 Javascript?

javascript - 对 SharePoint Rest API 的结果进行排序

database - 直接访问内容数据库 - SharePoint

c# - 使用匿名访问在 Sharepoint 中读取 cookie 时出现问题

UseCookieAuthentication 中的 ASP.NET Core Web 应用程序 ExpireTimeSpan 不起作用

c# - 复制后 Visual Studio Redo 快捷方式 Ctrl + Y 停止工作

visual-studio-2010 - 调试现有的共享点解决方案