Я пытаюсь написать веб-сервис, который возвращает переменные сеанса. Приложение, которое вызывает этот веб-сервис, имеет доступ к идентификатору сеанса текущего сеанса.
Я попытался сделать это, создав cookie-файл «ASPNet_SessionID», а затем подключив его к серверу, настроив его как контейнер 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 и смог выбрать правильный по ID:
http://weblogs.asp.net/imranbaloch/archive/2010/04/05/reading-all-users-session.aspx