Webapi: как простая проверка подлинности может работать без слова базовая

Я читал запись с примером кода, в котором показывалось, как реализовать базовую аутентификацию с помощью api. ссылка на статью - https://www.infoworld.com/article/2990800/application-architecture/implement-http-authentication-in-web-api.html

увидеть их код на стороне клиента, откуда они отправляют учетные данные на сервер.

public void BasicAuthenticationTest()
{
    string username = Convert.ToBase64String(Encoding.UTF8.GetBytes("joydip"));
    string password = Convert.ToBase64String(Encoding.UTF8.GetBytes("joydip123"));
    HttpClient client = new HttpClient();
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization", username + ":" + password);
    var result = client.GetAsync(new Uri("http://localhost/IDG/api/default/")).Result;
    Assert.IsTrue(result.IsSuccessStatusCode);
}

специально смотрим эту строчку client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization", username + ":" + password);

нет основное слово существует после слова авторизации .... так как же это Работа?

скорее подпись должна иметь вид Авторизация: Базовая anNtaXRoOlBvcGNvcm4 =

так что, пожалуйста, кто-нибудь, дайте мне немного знаний об этом.

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

Благодарность

Этот код также вводит в заблуждение относительно того, как использовать AuthenticationHeaderValuegithub.com/dotnet/corefx/blob/master/src/System.Net.Http/src‌ /….

Nkosi 11.04.2018 14:32
0
1
616
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

API может свободно реализовывать авторизацию любым способом. схема «Базовый» используется IIS в Windows для подтверждения правильности учетной записи пользователя, но API может использовать любую схему или никакой.

В «Базовом» нет ничего особенного, кроме того, что это обычное соглашение. Пока значение параметра заголовка авторизации соответствует ожиданиям API, он должен работать.

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

Mist 11.04.2018 21:01

Не знаю, сработает ли это. Это зависит от того, как сервис реализовал аутентификацию / авторизацию.

Crowcoder 11.04.2018 21:35

здесь вы сказали: «В« Базовом »нет ничего особенного, кроме того, что это обычное соглашение», поэтому из вашего утверждения я подумал, что слово «Базовый» - это просто соглашение, но не обязательное.

Mist 11.04.2018 21:50

Не думаю, что я ясно выражаюсь. Аутентификация - это деталь реализации. Вы можете сделать значение заголовка «MickeyMouse» и закодировать свою логику для проверки пользователя. Существуют хорошо известные заголовки (например, Authorization) и часто используемые соглашения (например, «Базовая аутентификация»), но когда вы сами пишете логику аутентификации, вам полностью решать, что искать в заголовках, файлах cookie, теле POST или даже (ах) Строка запроса.

Crowcoder 11.04.2018 21:55

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