Я хочу аутентифицировать пользователя из клиентского приложения при использовании веб-API ASP.NET . Я просмотрел все видео на сайте, а также прочитал этот пост на форуме .
[Authorize]
Правильная установка атрибута возвращает 401 Unauthorized
статус. Однако мне нужно знать, как разрешить пользователю входить в API.
Я хочу предоставить учетные данные пользователя из приложения Android в API, чтобы пользователь вошел в систему, а затем предварительно аутентифицировал все последующие вызовы API.
android
.net
authentication
asp.net-web-api
Муджтаба Хасан
источник
источник
Ответы:
Вам необходимо отправить действительный файл cookie проверки подлинности с помощью форм вместе с запросом. Этот файл cookie обычно отправляется сервером при аутентификации (
LogOn
действии) путем вызова[FormsAuthentication.SetAuthCookie
метода (см. MSDN ).Итак, клиенту необходимо выполнить 2 шага:
LogOn
действию, отправив имя пользователя и пароль. В свою очередь, это действие вызоветFormsAuthentication.SetAuthCookie
метод (в случае, если учетные данные действительны), который, в свою очередь, установит файл cookie проверки подлинности форм в ответе.[Authorize]
защищенному действию, отправив файл cookie проверки подлинности форм, полученный в первом запросе.Возьмем пример. Предположим, у вас есть 2 контроллера API, определенных в вашем веб-приложении:
Первый отвечает за обработку аутентификации:
а второй содержит защищенные действия, которые могут видеть только авторизованные пользователи:
Теперь мы могли написать клиентское приложение, использующее этот API. Вот тривиальный пример консольного приложения (убедитесь, что вы установили пакеты NuGet
Microsoft.AspNet.WebApi.Client
иMicrosoft.Net.Http
):А вот как два HTTP-запроса выглядят в сети:
Запрос аутентификации:
Ответ аутентификации:
Запрос на защищенные данные:
Ответ на защищенные данные:
источник
Я беру андроид в качестве примера.
Внимание, i.localhost использовать нельзя. Устройство Android выглядит как локальный хост как сам хост. ii. при развертывании веб-API в IIS необходимо открыть проверку подлинности формы.
источник
Используйте этот код и получите доступ к базе данных
источник