网络上 Excel 中的任务窗格和自定义函数之间不共享 Cookie
Cookie is not shared between taskpane and custom functions in Excel on the web
将我的 Excel 加载项部署到 Web 时,我在自定义函数和任务窗格之间共享 cookie 时遇到问题。我按照此 guide 在任务窗格和自定义函数之间共享 运行 时间和 cookie。我在离线 Excel(在 Mac 和 Window 中)进行了测试,它工作正常。但是,当我在 web 上加载该函数时,任务窗格作为 iframe 在 web 中加载,因此任务窗格和自定义函数具有不同的 运行time 和 cookie。没有错误消息,它们只是不再共享 运行 时间,这搞乱了我的自定义函数,该函数使用用户从任务窗格输入的 cookie 来验证它们。
我的目标受众不是在网络上使用 Excel 的人,但将加载项发布到 Appsource 是验证过程的一部分,因此我需要找到一种方法让它在网络也是如此。感谢任何帮助。
此问题是由网络浏览器的新安全功能引起的。 third-party cookie 被该功能阻止,因此 iframe 无法读取 cookie。您可以试试这个来解决它:
对于Edge/Chrome,将SameSite=None
和Secure
的设置添加到cookie中,例如
document.cookie="...your cookie;SameSite=None; Secure"
对于 Safari,请参阅此文档:Develop your Office Add-in to work with ITP when using third-party cookies
此外,Web Storage API 与在线 Excel 中的共享运行时配合得很好。如果您将 cookie 用于身份验证以外的目的,请考虑在您的场景中使用 localStorage
。
谢谢,
润东
将我的 Excel 加载项部署到 Web 时,我在自定义函数和任务窗格之间共享 cookie 时遇到问题。我按照此 guide 在任务窗格和自定义函数之间共享 运行 时间和 cookie。我在离线 Excel(在 Mac 和 Window 中)进行了测试,它工作正常。但是,当我在 web 上加载该函数时,任务窗格作为 iframe 在 web 中加载,因此任务窗格和自定义函数具有不同的 运行time 和 cookie。没有错误消息,它们只是不再共享 运行 时间,这搞乱了我的自定义函数,该函数使用用户从任务窗格输入的 cookie 来验证它们。
我的目标受众不是在网络上使用 Excel 的人,但将加载项发布到 Appsource 是验证过程的一部分,因此我需要找到一种方法让它在网络也是如此。感谢任何帮助。
此问题是由网络浏览器的新安全功能引起的。 third-party cookie 被该功能阻止,因此 iframe 无法读取 cookie。您可以试试这个来解决它:
对于Edge/Chrome,将SameSite=None
和Secure
的设置添加到cookie中,例如
document.cookie="...your cookie;SameSite=None; Secure"
对于 Safari,请参阅此文档:Develop your Office Add-in to work with ITP when using third-party cookies
此外,Web Storage API 与在线 Excel 中的共享运行时配合得很好。如果您将 cookie 用于身份验证以外的目的,请考虑在您的场景中使用 localStorage
。
谢谢,
润东