UWP: обращение к REST API с помощью встроенной аутентификации Windows работает на компьютере разработчика, но не на других компьютерах - PullRequest
0 голосов
/ 03 июля 2019

Я работаю над приложением UWP, которое будет работать на ноутбуках и планшетах Windows 10. Среда, в которой она будет развернута, требует, чтобы все пользователи входили в свои системы с помощью смарт-карты (поэтому без имени пользователя / пароля). Я использую HttpClient для подключения к REST API, который настроен для встроенной проверки подлинности Windows. Когда я работаю на своей машине для разработки, либо в VS, либо используя выходные данные Release Build, я могу без проблем подключиться к API. Однако когда этот выпуск Release Build установлен на другом компьютере (не разработчике), он не может подключиться к серверу. Сервер IIS возвращает сообщение об ошибке: «401 - неавторизован: доступ запрещен из-за неверных учетных данных. В журнале IIS появляется следующая запись:

"2019-07-03 15:49:57 X.X.X.X GET / api / - 80 - Y.Y.Y.Y - - myserver.com 401 2 5 31"

Мой сервер IIS настроен для разрешения олицетворения ASP.Net и проверки подлинности Windows, но без других методов проверки подлинности.

Соответствующий фрагмент кода:

using (HttpClient client =
    new HttpClient(new HttpClientHandler()
    {
        PreAuthenticate = true,
        UseDefaultCredentials = true,
        Credentials = CredentialCache.DefaultNetworkCredentials
    }))
{
    client.BaseAddress = new Uri(RequestUri);
    client.DefaultRequestHeaders
        .Accept
        .Add(new MediaTypeWithQualityHeaderValue("application/json"));

    HttpResponseMessage response = null;

    try
    {
        response = await client.GetAsync(RequestUri);

    }

....

Кто-нибудь может подсказать, что я делаю неправильно в конфигурации моего запроса?

ТИА

Рон Л

1 Ответ

0 голосов
/ 16 июля 2019

Я нашел, в чем проблема.Сайт, с которым осуществляется связь (URL-адрес API) с использованием встроенной аутентификации Windows, ДОЛЖЕН быть добавлен в список сайтов интрасети в параметрах Интернета пользователя.Для этого откройте «Свойства обозревателя» на панели управления или в браузере, перейдите на вкладку «Безопасность», нажмите «Локальная интрасеть», нажмите кнопку «Сайты», нажмите кнопку «Дополнительно» и введите URL-адрес в список.

...