У меня есть вопрос по поводу проверки подлинности Windows с IIS и HttpListner
У меня есть следующие настройки (Все установлены в одном окне Windows 8.1. Нет внешних связей).Все запросы отправляются как http://localhost/......
IIS
Аутентификация веб-приложения ASP.Net
Anonymous: Disabled
Windows Authentication: Enabled
.Net httpListener
, запущенная как служба, запущенакак локальная системная учетная запись.и включена проверка подлинности Windows
this.httpListener = new HttpListener();
this.httpListener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication;
Приложение UWP (Windows 8.1)
Приложение UWP похоже на веб-браузер.Он имеет элемент управления WebView для просмотра веб-содержимого.
Включены следующие возможности
- Аутентификация предприятия
- Интернет (клиент)
- Расположение
- Частные сети (клиент и сервер)
Проблема
Когда я перехожу из приложения uwp в веб-приложение IIS, он запрашивает учетные данные, открывая диалоговое окно.Это раздражает с точки зрения взаимодействия с пользователем, потому что пользователь вошел в систему с теми же учетными данными.Но когда я получаю доступ к Http Listener, он аутентифицируется правильно и не вводит диалоговое окно учетных данных.
Также я проверял запросы через fiddler.Первоначальный запрос идентичен, но со следующими шагами для запроса IIS он постоянно запрашивает NTLM.
HTTP/1.1 401 Unauthorized
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
WWW-Authenticate: Negotiate oYHOMIHLoAMKAQGhDAYKKwYBBAGCNwICC........
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Начальный запрос / ответ
IIS
Запрос
GET http://localhost/webapp_net/ HTTP/1.1
Accept-Encoding: gzip, deflate
Host: localhost
Connection: Keep-Alive
Ответ
HTTP/1.1 401 Unauthorized
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,POST
Date: Tue, 20 Nov 2018 21:37:24 GMT
Content-Length: 6016
Proxy-Support: Session-Based-Authentication
HttpListener
Запрос
GET http://localhost/appman HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-NZ
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; WebView/2.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: localhost
Ответ
HTTP/1.1 401 Unauthorized
Content-Length: 0
Server: Microsoft-HTTPAPI/2.0
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
Date: Tue, 20 Nov 2018 21:37:18 GMT
Proxy-Support: Session-Based-Authentication
У кого-нибудь есть подобный опыт или объяснение этому?