У меня есть кусок кода:Выполнение запроса пут или патч с токена
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(String.Format("{0}:{1}", "Username", "password"))));
var method = new HttpMethod("PATCH");
var reqmsg = new HttpRequestMessage(method, uri)
{
Content = new StringContent(request, Encoding.UTF8, "application/json")
};
HttpResponseMessage response = await client.SendAsync(reqmsg);
Это прекрасно работает с использованием обычной проверки подлинности. Я хочу использовать маркер, хотя, и если изменить разрешение на использование webtoken:
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Token", WebToken);
теперь я получаю 403 Forbidden ошибки. Если я делаю Post или Get, токен работает, но не для Patch или Put. Я предполагаю, что токен как-то лишен. Есть ли способ обойти это?
Вы можете определить, удаляется ли токен или нет, пытаясь сделать это с помощью клиента REST (например, расширения для Chrome/Firefox) или просмотрев запрос с помощью Fiddler. Это может быть проблемой при настройке сервера, а не в вашем коде –
PATCH был успешно протестирован через REST-инфраструктуру, поэтому он не похож на настройку сервера. –