Как использовать контейнер для печенья с сеансами RestSharp и ASP.NET?

StackOverflow https://stackoverflow.com/questions/8823349

Вопрос

Я хотел бы иметь возможность вызвать действие аутентификации на контроллере, и, если оно будет успешным, сохранить аутентифицированные данные пользователя в сеансе.

Тем не менее, я не уверен, как сохранить запросы внутри сеанса, так как я использую RestSharp в качестве отдельного клиента. Мне нужно каким -то образом получить ключ обратно от сервера при успешной авторизации, а затем для каждого будущего вызова проверьте ключ, который хранится в сеансе.

Как я могу гарантировать, что RestClient в RestSharp отправляет все будущие запросы с правильным набором cookie, так что переменная службы с сеансом можно было правильно извлечь?

Я смотрел на контейнер для печенья с httpfactory, но, похоже, нигде нет документации.

Это было полезно?

Решение 2

Я сделал это в конце концов. В основном создайте контейнер для печенья, затем добавьте сеанс cookie из ответа в контейнер для печенья. Все будущие запросы будут тогда содержать этот файл cookie.

 var sessionCookie = response.Cookies.SingleOrDefault(x => x.Name == "ASP.NET_SessionId");
 if (sessionCookie != null)
 {
    _cookieJar.Add(new Cookie(sessionCookie.Name, sessionCookie.Value, sessionCookie.Path, sessionCookie.Domain));
 }

Другие советы

Если у кого -то есть подобная проблема, обратите внимание, что вышеперечисленное не требуется для простой «хранить мои куки после каждого запроса». Подход Jaffas выше работает, но вы можете просто прикрепить Cookiestore к своим RestClient и хранить печенье автоматически. Анкет Я знаю, что это не решение для всех, так как вы, возможно, захотите хранить преданный Только печенье. С другой стороны, это облегчает тестирование клиента отдыха! (Я использовал jaffas переменные для легкого):

        CookieContainer _cookieJar = new CookieContainer();
        var client = new RestClient("http://<test-server>/letteron"); //test URL
        client.CookieContainer = _cookieJar;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top