【发布时间】:2017-02-08 09:58:09
【问题描述】:
我正在用 ASP.NET/C# (ASPX) 重写一个 ASP 经典 (ASPC) 应用程序。变化之一 我发现是在使用 Request.Cookies 集合中的值设置查询时:
sSQL = "select..." & " where S = '" & Request.Cookies("K")("S") & "'"
在 ASPC 中设置了请求 cookie,并从数据库返回一条记录。
在 ASPX 中,请求 cookie 未设置,查询不返回任何记录。
原始逻辑从查询字符串中设置Response.Cookies中的值:
if Request.QueryString("K") <> "" then
Response.Cookies("K")("S") = Request.QueryString("S")
end if
我发现 Request.Cookies 没有在原始 ASPC 代码的任何地方明确设置。
目前,我的解决方法是添加一条语句来设置请求 Cookie:
if Request.QueryString("K") <> "" then
Response.Cookies("K")("S") = Request.QueryString("S")
Request.Cookies("K")("S") = Request.QueryString("S") ' adding this fixes the issue, but its a kludge
end if
但是,我不明白为什么需要这个添加。
Request.Cookies 和 Response.Cookies 的值似乎有所不同 由 ASPC 和 ASPX 维护。有没有其他人看过这个?这是一个已知的 ASPC 和 ASPX 的区别?
这发生在 IIS7、IE11(和 firefox)中,使用 C#4.5、VS2015。
【问题讨论】: