Estoy intentando escribir un servicio web que devuelve variables de sesión. La aplicación que llama a este servicio web tiene acceso a la ID de sesión de la sesión actual.Sesión "Suplantación" en una llamada al servicio web
Intenté hacer esto creando una cookie "ASPNet_SessionID" y luego adjuntando establecerla como el contenedor de cookies de una clase proxy para el servicio web, pero eso no funciona. Hice esto como tal,
protected void CallService(string sessionID)
{
localhost.AuthService auths = new localhost.AuthService(); //Service Proxy class
System.Net.CookieContainer cookieJar = new System.Net.CookieContainer();
System.Net.Cookie newCookie = new System.Net.Cookie("ASPNet_SessionID", sessionID);
newCookie.Domain = "http://localhost";
cookieJar.Add(newCookie);
auths.CookieContainer = cookieJar;
string SessionData = auths.GetSessionData();
El método web GetSessionData simplemente devuelve los datos de sesión de este modo:
[WebMethod(EnableSession=true)]
public string GetSessionData(string sessionID) {return ((string)Session["user"]);}
caso de este método de trabajo, o estoy haciendo algo completamente equivocada?
UPD: Este enlace realidad resuelto mi problema - yo era capaz de acceder a toda la InProc sesiones y fue capaz de seleccionar la correcta por ID:
http://weblogs.asp.net/imranbaloch/archive/2010/04/05/reading-all-users-session.aspx
¿Qué está tratando de lograr? Intentar engañar el manejo de la sesión de asp dará como resultado un código bastante frágil. – Journey
Estoy intentando habilitar una aplicación de terceros para ver qué usuario ha iniciado sesión en mi sitio web. La aplicación está en el mismo dominio que mi sitio, lo que significa que tiene acceso a las mismas cookies y, por lo tanto, a SessionID. Pensé que si almacenaba la información sobre el usuario actual en la sesión, la aplicación de terceros podría enviar una solicitud al servicio web que recuperaría el nombre del usuario de la sesión. –
¿cómo estás manteniendo la sesión? InProc? –