#c_sharp #net
Я использую WebClient для авторизации при помощи куки на веб-сервисе.
class CookieWebClient : WebClient
{
public CookieContainer CookieContainer { get; private set; }
public CookieWebClient()
{
this.CookieContainer = new CookieContainer();
}
public CookieWebClient(CookieContainer cookieContainer)
{
this.CookieContainer = cookieContainer;
}
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address) as HttpWebRequest;
if (request == null) return base.GetWebRequest(address);
request.Timeout = 30000;
request.CookieContainer = CookieContainer;
return request;
}
}
Чем можно заменить этот код, чтобы можно было принять куки и продолжать работать
с веб-сервисом, авторизовавшись?
Ответы
Ответ 1
Судя по предыдущему вопросу - у вас есть полный контроль над серверным кодом. И сейчас вы занимаетесь изобретением велосипедов. Незачем вам там использовать Web Api. RESTfull-сервисы хороши только когда у вас есть некий готовый функционал, и вы хотите по-быстрому сделать его доступным для некого JavaScript-кода выполняющегося в веб-браузере. Для бизнес-приложений он не подходит, и применяться там не будет никогда. Такова его специфика. Для CF всегда лучше всегда использовать WCF-сервисы(SOAP), вместо Web Api. Там авторизация из коробки, все вызовы строго типизированы, внятная обработка исключений. Ну и просто приятней когда можно нажать в студии правой кнопкой на проекте, выбрать "Add Web Service", вбить url конечной точки, а всё остальное студия сделает за вас. Вопрос об отсутствующем WebClient отпадет сам по себе.
Комментариев нет:
Отправить комментарий