Почему схема необходима для AuthenticationHeaderValue?
Я устанавливаю заголовок авторизации HttpClient
следующим образом:
httpClient
.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(null, "abc");
...но получаю исключение:
"схема" AuthenticationHeaderValue не может быть null.
почему AuthenticationHeaderValue
есть схема? Требуется ли это конкретным RFC?
2 ответов
схема используется для определения того, какую аутентификацию вы используете:
- Basic
- протокол OAuth
- на предъявителя
- дайджест
- etc.
заголовок будет выглядеть так:
{
"key": "Authorization",
"value": "<scheme> <parameter>"
}
попробуйте использовать почтальон чтобы увидеть, что генерируется на основе различных типов аутентификации, поддерживаемых HTTP.
иногда вы не можете установить заголовок авторизации со схемой. Это также относится к проекту, над которым я работаю прямо сейчас. Мне нужно подключиться к API из TOPdesk, но схема не указана.
заголовок авторизации из TOPdesk должен иметь значение TOKEN id="0d1739df-8952-41c0-94cd-b25287446b22"
поэтому я не могу использовать схему. Я решил проблему, добавив заголовок авторизации, как в следующем примере, и он работает как шарм.
client.DefaultRequestHeaders.Add("Authorization", $"TOKEN id=\"{_token}\"");
I знаю, это старый вопрос, но я подумал, что, возможно, кто-то в будущем посмотрит на этот ответ и найдет его полезным. С этим вопросом я столкнулся точно так же.