2010-11-05 33 views
5

Có cách nào để lấy đối tượng phiên từ sessionID không?Nhận đối tượng phiên từ sessionID trong ASP.Net

Tôi có một dự án nhỏ sử dụng tải lên Flash để cho phép người dùng tải tệp lên máy chủ nhưng vấn đề là Flash có lỗi khi gửi phiên và cookie (trong Firefox hoặc Chrome, nhưng không phải IE), vì vậy tôi tìm thấy một giải pháp để khắc phục sự cố này: gửi sessionID thông qua Flash tới máy chủ và trên máy chủ, giải mã sessionID quay lại đối tượng phiên, nhưng tôi không làm cách nào để thực hiện. Tôi đang sử dụng ASP.NET và C#.

Có ai có thể tư vấn cho tôi về những việc cần làm không?

Trả lời

4

Liên kết do Moo-Juice đề xuất không còn hoạt động nữa.

tôi đã sử dụng mã được cung cấp trong trang này:

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

Nó làm việc như một nét duyên dáng.

Nếu liên kết sẽ trở thành bị hỏng, đây là mã:

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); 
    } 
} 
Các vấn đề liên quan