«Выдача себя за» сеанс в вызове веб-службы

Я пытаюсь написать веб-службу, которая возвращает переменные сеанса. Приложение, которое вызывает эту веб-службу, имеет доступ к идентификатор сеанса текущего сеанса.

Я попытался сделать это, создав файл cookie «ASPNet_SessionID», а затем прикрепив ng, установив его как контейнер cookie прокси-класса для веб-службы, но это не работает. Я сделал это так,

 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();

Веб-метод GetSessionData просто возвращает данные сеанса следующим образом:

[WebMethod(EnableSession=true)]
public string GetSessionData(string sessionID) {return ((string)Session["user"]);}

Должен ли этот подход работать, или я делаю что-то совершенно не так?

UPD: Эта ссылка действительно решила мою проблему - я смог получить доступ ко всем сеансам InProc и смог выбрать правильный по идентификатору:

http://weblogs.asp.net/imranbaloch/archive/2010/04/05/reading-all-users-session. aspx

7
задан Matt Kagan 26 July 2011 в 18:44
поделиться