2010-11-05 16 views
5

¿Hay alguna forma de obtener un objeto de sesión de sessionID?Obtiene el objeto de sesión del ID de sesión en ASP.Net

Tengo un proyecto pequeño que utiliza una carga Flash para permitir que un usuario cargue su archivo en el servidor, pero el problema es que Flash tiene algún error al enviar la sesión y la cookie (en Firefox o Chrome, pero no en IE). así que encontré una solución para solucionar este problema: enviar el sessionID a través de Flash al servidor, y en el servidor, decodificar sessionID de vuelta al objeto de sesión, pero no sé cómo hacerlo. Estoy usando ASP.NET y C#.

¿Alguien me puede aconsejar sobre qué hacer?

Respuesta

4

El enlace propuesto por Moo-Juice ya no funciona.

He utilizado el código proporcionado en esta página:

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

funcionó a las mil maravillas.

Si el enlace se convertiría rota, aquí está el código:

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); 
    } 
} 
Cuestiones relacionadas