gpt4 book ai didi

javascript - 最小 SharePoint 页面中 window.open 后的 session 为空

转载 作者:行者123 更新时间:2023-11-30 13:34:15 26 4
gpt4 key购买 nike

我将 token 存储在 session 变量中。我使用 javascript windows.open 函数在新的 ASPX 页面中启动需要此标记的报告。当这个新页面加载时,HttpContext.Current.Session 为空。

我已经通过在查询字符串中传递 token 来解决这个问题,但此窗口中的事件需要保持父窗口的 session 处于事件状态,我不确定 session 对象为 null 对这种情况意味着什么。

知道为什么在 javascript 中使用 window.open 时 HttpContext.Current.Session 对象会为 null 吗?

编辑: 我要补充一点,这是一个存储在 SharePoint 库中的基本 System.Web.UI.Page,并且 window.open 函数是从 Web 部件调用的。 我在想这个页面可能需要继承一个基类来共享正确的上下文。

更新:我已经确定这与 SharePoint 相关。我将访问 Session 对象的代码移到了 Web 部件中。如果将 Web 部件放在标准的 Web 部件页面中,该 Web 部件可以正常工作,但我将其添加到仅包含 ScriptManager、SPWebPartManager 和 WebPartZone 的最小页面中。代码运行但 session 对象再次为空。我的最小页面缺少使 Session 对象可用的内容。

已解决:我的最小 ASPX 页面需要实现 IRequiresSessionState 接口(interface)。之后,Session 对象就在那里。

我要表扬安德烈,因为他提供了最有用的信息。

最佳答案

从技术上讲,这是与网站的不同连接,这就是为什么它是不同的 session 。如果您希望不同的窗口使用相同的 session 存储,最好使用应用程序缓存而不是 session 。

更新:如果您想坚持使用 session 状态,您可以做的是将 session ID 写入持久性 cookie,这样子窗口对服务器的调用将携带它,您可以从该 cookie 检索 SessionID。重要提示:确保在放入 cookie 之前加密 session ID,以避免 session 劫持。

关于javascript - 最小 SharePoint 页面中 window.open 后的 session 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5543126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com