4

我正在从 Coldfusion 9 过渡到 Coldfusion 10 服务器。我注意到我的登录 cookie(从 .NET 生成)在 Coldfusion 中读取时丢失数据的问题。IE,一个应该读取的cookie:

EMAIL=user@hotmail.com&ID=9994171&CONTENT_SECURITY=MBR CO CFO PFS MC CL RE STF PA SP SC HCC&FIRST_NAME=Jack&LAST_NAME=Smith&FULL_NAME=Jack Smith&CHAPTER=047&TITLE_SEGMENT=中层/执行&TITLE_SEGMENT_DESC=其他&PAID_THRU=5/31/2014 AM&MEMBER_TYPE=STF&MEMBER_STATUS=A&IS_MEMBER=假&ELIGIBLETOJOIN=假&IS_STAFF=是

仅在 CF10 中读取为:

电子邮件

似乎任何特殊字符都会导致这种情况,因为我在空格、= 等上看到它。有没有人遇到过这个问题或对此原因有一些意见?我不想因此而重新编写我的安全性,但我很难理解这个开关。

4

2 回答 2

1

使用 GetHTTPRequestData() 方法。

_cookie = GetHttpRequestData().headers.cookie;
于 2013-10-28T03:13:52.150 回答
0

刚刚想出了同样的问题。我们正在使用具有固定长度的 cookie 值。出于某种原因,CF10 没有显示单个 cookie 值,因此我们抓取了所有 cookie 的字符串,然后搜索 cookie 值开始的位置并提取值。(感谢 Sanjeev 让我朝着正确的方向开始)

<cfset allcookies = GetHttpRequestData().headers.cookie>

<!--- Finds the string where your cookie starts --->
<cfset yourCookie = Find("sampleSting", allcookies) >

<!--- Grabs a six digit number after the seven digit cookie string. --->
<cfset yourVariable = MID(allcookies,(sampleString+7),6)>
于 2014-05-16T17:21:11.773 回答