2010-11-05 1 views
5

Есть ли способ получить объект сеанса из sessionID?Получить объект сеанса из sessionID в ASP.Net

У меня есть небольшой проект с использованием загрузки Flash, чтобы пользователь мог загрузить свой файл на сервер, но проблема в том, что Flash имеет некоторая ошибка при отправке сеанса и файла cookie (в Firefox или Chrome, но не в IE), поэтому я нашел решение для решения этой проблемы: отправку через Flash на сервер и на сервер, декодирование 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); 
    } 
}