Как устранить неполадки с интегрированной аутентификацией для ядра asp.net 2.1
Запросы страниц к моему приложению asp.net core 2.1.x, опубликованные в IIS с использованием публикации Visual Studio 2017, возвращают ошибку HTTP 401.2 - неавторизовано.Приложение IIS Server настроено на использование только встроенной аутентификации. Фрагмент окна диспетчера IIS
В этом фрагменте веб-сайт по умолчанию / OrderTrackingService - это приложение, созданное и настроенное с помощью отладки Visual Studio.Dev.Portal / ordertracking - это то же приложение, которое опубликовано в профиле публикации Visual Studio.
Насколько я могу судить, конфигурация веб-приложения в IIS идентична.Когда я запускаю приложение в отладчике, используя IIS или IIS Express, входящие запросы имеют заголовок авторизации
No Proxy-Authorization Header is present.
Authorization Header (Negotiate) appears to contain a Kerberos ticket:
60 81 84 06 06 2B 06 01 05 05 02 A0 7A 30 78 A0 `..+..... z0x
30 30 2E 06 0A 2B 06 01 04 01 82 37 02 02 0A 06 00...+....7....
09 2A 86 48 82 F7 12 01 02 02 06 09 2A 86 48 86 .*H÷......*H
F7 12 01 02 02 06 0A 2B 06 01 04 01 82 37 02 02 ÷......+....7..
…
Когда я запускаю приложение из IIS Direct (как настроено при публикациии настройки IIS) входящие запросы не имеют заголовка авторизации
No Authorization Header is present.
Может кто-нибудь сказать мне, как я могу определить, почему заголовки присутствуют в одном случае и отсутствуют в другом случае?
ОБНОВЛЕНИЕ: у меня есть некоторая дополнительная информация, которая может помочь с поиском проблемы.Когда запросы к веб-приложению, настроенные с помощью визуальной отладки в студии, передаются в IIS, возникает серия HTTP-запросов / ответов, в которых предоставляется заголовок аутентификации и устанавливается идентификатор пользователя.
- REQUEST / RESPONSE
GET http://.../ordertrackingservice HTTP/1.1
Host: ...
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: .AspNet.Consent=yes
HTTP/1.1 401 Unauthorized
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Date: Tue, 02 Oct 2018 16:32:36 GMT
Content-Length: 6138
Proxy-Support: Session-Based-Authentication
** - ЗАПРОС / ОТВЕТ **
GET http://.../ordertrackingservice HTTP/1.1
Host: ...
Connection: keep-alive
Cache-Control: max-age=0
Авторизация: переговоры YIGEBgYrB ....
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: .AspNet.Consent=yes
HTTP/1.1 401 Unauthorized
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
WWW-аутентификация: согласование oYIBUTCCAU2gAwoBAaEMBgorBgE ...
Date: Tue, 02 Oct 2018 16:32:36 GMT
Content-Length: 341
Proxy-Support: Session-Based-Authentication
** - ЗАПРОС / ОТВЕТ **
GET http://.../ordertrackingservice HTTP/1.1
Host: ...
Connection: keep-alive
Cache-Control: max-age=0
Authorization: Negotiate oXcwdaADCgEBoloEWE5UTE1TU1...
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: .AspNet.Consent=yes
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Vary: Accept-Encoding
Server: Kestrel
Persistent-Auth: true
X-Powered-By: ASP.NET
WWW-Authenticate: Negotiate oRswGaADCgEAoxIEEAEAAAAVmumr4Z49ZwAAAAA=
Date: Tue, 02 Oct 2018 16:32:36 GMT
Content-Length: 6884
Когда на веб-сайт, созданный средством публикации Visual Studio, поступают запросы, такое согласование не происходит.Существует один запрос / ответ
GET http://...:8081/ordertracking HTTP/1.1
Host: ...:8081
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: .AspNet.Consent=yes
HTTP/1.1 401 Unauthorized
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Date: Tue, 02 Oct 2018 17:00:10 GMT
Content-Length: 5955
Proxy-Support: Session-Based-Authentication
Единственное, что отличается от конфигурации, насколько я могу судить, это то, что опубликованный веб-сайт имеет привязки к порту 8081. В обоих случаях выполняется один и тот же код.случаев, так что это должно быть какой-то проблемой конфигурации.
Дано: В рабочем случае первоначальный ответ исходит от IIS, второй ответ приходит от Microsoft-HTTPAPI / 2.0, а третий ответ приходит отПустельга.
Дополнительные вопросы: Является ли средний сервер частью основного модуля ASP.Net?Возможно ли, что в нем отсутствует какая-либо конфигурация конфигурации, которая не позволяет ему получить передачу обслуживания?(например, прослушивание только через порт 80 или что-то в этом роде)