Я пытаюсь написать веб-службу, которая возвращает переменные сеанса. Приложение, которое вызывает эту веб-службу, имеет доступ к идентификатор сеанса текущего сеанса.
Я попытался сделать это, создав файл 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