2012-12-10 42 views
4

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

[email protected] & ID = 9994171 & CONTENT_SECURITY = MBR CO CFO PFS MC CL RE STF PA SP SC HCC & FIRST_NAME =插孔& LAST_NAME =史密斯& FULL_NAME =插孔史密斯&章= 047 & TITLE_SEGMENT =中级/ Execu & TITLE_SEGMENT_DESC =其他& PAID_THRU = 5 /二千○十四分之三十一12:00:00 AM & MEMBER_TYPE = STF & MEMBER_STATUS = A & IS_MEMBER =假& ELIGIBLETOJOIN =虚假& IS_STAF F =是

仅在CF10读为:

EMAIL

似乎任何特殊字符导致这是我看到它在空间,=,等等。有没有人有过这个问题,或者对这个问题的原因有过一些意见?我不想因为这个而重写我的安全性,但我很难理解这个开关。

+0

你是如何获取有关cookie的内容您的信息?您是否在运行Coldfusion页面之前和之后使用文本编辑器阅读它? –

+0

我正在通过Firefox->选项 - >隐私 - >删除单个Cookie来阅读它,以查看哪些Cookie已填充。然后我通过Coldfusion的眼睛倾倒“#cookie#”变量来查看cookie中的内容。这是在'转储',我看到任何具有空格或=的cookie值的截断。它可能有更多的触发器,但我注意到的就是这些。我还通过设置了一个cookie,即使它有空格,它也会显示在转储罚款中。 – Jack

+0

如果您在使用Firefox浏览ColdFusion后使用firefox查看同一个cookie,它是否仍然具有原始内容? –

回答

1

使用GetHTTPRequestData()方法。

_cookie = GetHttpRequestData().headers.cookie; 
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)>