Это зависит от типа сервера, на который вы отправляете запрос. Например, если у вас есть сайт, размещенный на IIS, он ожидает идентификатор сеанса внутри файла cookie с именем ASP.NET_SessionId
(или в строке запроса). Если у вас есть движок Java-сервлетов на другой стороне, он ожидает файл cookie с именем JSESSIONID
(или параметр пути запроса jsessionid
).
Так что это зависит. Тем не менее, установка файлов cookie внутри HttpWebRequest не составляет труда. Вы можете использовать свойство CookieContainer
:
CookieContainer cookies = new CookieContainer();
cookies.Add(new Cookie("ASP.NET_SessionId", sessionId));
request.CookieContainer = cookies;
Идентификатор сеанса, который вы храните внутри куки, должен иметь определенный формат, и опять же, это зависит от типа сервера на другом конце. В ASP.NET по умолчанию класс SessionIDManager
используется для создания и проверки идентификаторов сеансов. Этот класс трудно использовать повторно, потому что он требует HttpContext
. Однако вы можете проверить с помощью Reflector, как он генерирует идентификатор сеанса.