2010-11-05 85 views
5

是否有從sessionID獲取會話對象?從會話ID獲取會話對象在ASP.Net

我有一個小項目使用Flash上​​傳來讓用戶將他們的文件上傳到服務器,但問題是Flash在發送會話和cookie(在Firefox或Chrome中,但不是IE)時有一些錯誤,所以我找到了一個解決方案來解決這個問題:通過Flash發送sessionID到服務器,並在服務器上解碼sessionID回到會話對象,但我不知道該怎麼做。我正在使用ASP.NET和C#。

任何人都可以告訴我該怎麼做?

回答

4

Moo-Juice建議的鏈接不再有效。

我曾經在這個網頁提供的代碼:

http://snipplr.com/view/15180/

它的工作就像一個魅力。

如果該鏈接將成爲破,這裏是代碼:

void Application_BeginRequest(object sender, EventArgs e) 
{ 
    try 
    { 
     string session_param_name = "ASPSESSID"; 
     string session_cookie_name = "ASP.NET_SESSIONID"; 
     string session_value = Request.Form[session_param_name] ?? Request.QueryString[session_param_name]; 
     if (session_value != null) { UpdateCookie(session_cookie_name, session_value); } 
    } 
    catch (Exception) { } 

    try 
    { 
     string auth_param_name = "AUTHID"; 
     string auth_cookie_name = FormsAuthentication.FormsCookieName; 
     string auth_value = Request.Form[auth_param_name] ?? Request.QueryString[auth_param_name]; 

     if (auth_value != null) { UpdateCookie(auth_cookie_name, auth_value); } 
    } 
    catch (Exception) { } 
} 
void UpdateCookie(string cookie_name, string cookie_value) 
{ 
    HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(cookie_name); 
    if (cookie == null) 
    { 
     HttpCookie cookie1 = new HttpCookie(cookie_name, cookie_value); 
     Response.Cookies.Add(cookie1); 
    } 
    else 
    { 
     cookie.Value = cookie_value; 
     HttpContext.Current.Request.Cookies.Set(cookie); 
    } 
}