我正在做一个非常奇怪的技巧来在跨域的 php 页面中使用 asp.net。我有很多问题,但我以某种方式解决了所有问题。现在最后一个问题:
我需要读取仅具有 SessionID 的 asp.net 会话数据。
我已经在这里尝试了 swfupload 的作者的建议:http://web.archive.org/web/20120415034411/http: //swfupload.org/forum/generaldiscussion/98
这减少了:
Dim cookie As HttpCookie = HttpContext.Current.Request.Cookies.Get("ASP.NET_SessionId")
cookie.Value = "mySessionID"
HttpContext.Current.Request.Cookies.Set(cookie)
但是如果我在这之后检查 Session.SessionID 我仍然得到旧的会话值。我读过我应该使用“响应”在客户端上设置 cookie,但即使这样也不起作用:
Response.Cookies("ASP.NET_SessionId").Value = "mySessionID"
在此之后仍然得到相同的 SessionID。
SessionID 是只读的,我不能用普通的 Session.SessionID = "myid" 覆盖它
即使这样,我也尝试过(但失败了):
Dim ctx = HttpContext.Current
ctx.Response.Cookies.Remove("ASP.NET_SessionId")
ctx.Response.Cookies.Add(New HttpCookie("ASP.NET_SessionId", "mySessionID"))
我怎样才能做到这一点?
编辑:我添加了另一个失败测试
Dim a, b As Boolean
Dim SM As New SessionIDManager
SM.InitializeRequest(HttpContext.Current, False, True)
SM.RemoveSessionID(HttpContext.Current)
SM.SaveSessionID(HttpContext.Current, "mySessionID", a, b)