gpt4 book ai didi

coldfusion - 在 MS Word 中单击的链接丢失 CF session 变量,但复制和粘贴工作正常

转载 作者:行者123 更新时间:2023-12-04 01:35:24 24 4
gpt4 key购买 nike

我已经尝试解决这个问题一个小时了,但我受阻了。允许员工注册的简单站点。通常情况下,雇主有一个全公司范围的 u/p 供所有员工使用以访问注册页面,但客户还希望有一种方法可以为员工提供自动登录链接以进行注册。

足够简单 - 创建了一个页面“r.cfm”,用于查找 URL.emid(加密的雇主 ID)和 URL.h(5 个字符的散列作为基于解密的雇主 ID 的检查)。完整的 URL 可能如下所示:

https://www.domain.com/r.cfm?emid=22EBCA&h=F5DEA

r.cfm 确保存在正确的 URL 变量,解密 emid,比较检查值,如果一切正确,则设置一些 session 变量:

<cflock scope="session" type="exclusive" timeout="10">
<cfset SESSION.LOGGEDIN = TRUE/>
<cfset SESSION.LOGIN.EMPLOYEE.COID = DecryptString(url.emid)/>
</cflock>

我认为使用 CFHEADER 302 和 CFHEADER 位置将它们发送到下一页。这就是它变得奇怪的地方。在下一页上,我设置了一些测试代码以通过电子邮件将 session 转储发送给我。

如果直接在 MS Word 中单击,我会进入第二页(来自 cfheader 重定向的那一页 - employeeRegister.cfm)并且我得到的不是一个 - 而是两个 session 的电子邮件转储。第一个显示登录为 true,但第二个显示为 false,使用不同的 jsessionid。

如果我使用完全相同的链接,将其粘贴到我的浏览器中,它会按预期工作 - 一封带有 session 转储的电子邮件显示该 session.logged 为 true。

employeeRegister.cfm 上没有任何内容可以启动页面重新加载。它实际上甚至不检查 session.logged in var 直到下一页。 employeeRegister.cfm 只是条款和条件以及用于转到下一页的提交按钮,这是读取和检查 session 变量的地方。它实际上是一个带有文本的 div,然后是一个带有接受/拒绝的表单标签。

最佳答案

这是因为办公产品最初尝试充当浏览器(以测试网络制作),而不是立即将控制权移交给浏览器。当浏览器控制 url 时,有效 session 不存在,因为 office 不会共享 cookie。如果没有有效的 session cookie,您最终会在相关网站的后续重定向或导航过程中被注销。

这些 MS 知识库文章应该可以帮助您解决问题。

http://support.microsoft.com/kb/899927 <- mostly

http://support.microsoft.com/kb/218153 <- more info about Office links

关于coldfusion - 在 MS Word 中单击的链接丢失 CF session 变量,但复制和粘贴工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13162680/

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