Почему схема необходима для 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 знаю, это старый вопрос, но я подумал, что, возможно, кто-то в будущем посмотрит на этот ответ и найдет его полезным. С этим вопросом я столкнулся точно так же.