[asp.net]ashx中session存入,aspx为null的原因(使用flash uploader)
I am using uploadify to upload files, they automatically post to the handler. I then modify the session in the handler that I have setup as a static property in a common class of the website. I then try to access that same session in the aspx page, and the value is null. I have a feeling this is because of cookies, but there needs to be a way to work around this without exposing the sessionid in the url.
Solutions
I found the answer: When the handler is being called from FLASH (like swfupload or uploadify) it does not pass the current sessionid to the handler. The handler then creates a NEW session. To fix this, do the following:
$(Selector).uploadify({ swf: ‘uploadify.swf‘, uploader: ‘Upload.ashx?ASPSESSID=<%=Session.SessionID%>‘ });
Add to: Global.asax:
1 void Application_BeginRequest(object sender, EventArgs e) 2 { 3 try 4 { 5 string session_param_name = "ASPSESSID"; 6 string session_cookie_name = "ASP.NET_SESSIONID"; 7 string session_value = Request.Form[session_param_name] ?? Request.QueryString[session_param_name]; 8 if (session_value != null) { UpdateCookie(session_cookie_name, session_value); } 9 } 10 catch (Exception) { } 11 } 12 13 void UpdateCookie(string cookie_name, string cookie_value) 14 { 15 HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(cookie_name); 16 if (cookie == null) 17 { 18 HttpCookie cookie1 = new HttpCookie(cookie_name, cookie_value); 19 Response.Cookies.Add(cookie1); 20 } 21 else 22 { 23 cookie.Value = cookie_value; 24 HttpContext.Current.Request.Cookies.Set(cookie); 25 } 26 }
[asp.net]ashx中session存入,aspx为null的原因(使用flash uploader),古老的榕树,5-wow.com
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。