У меня проблема с подключением САЙТА A к САЙТА B на том же сервере IIS.
САЙТ A действует как SPA (aspx) и использует API (web api) SITE B , оба в .net 4.6.1.
В моей среде развертывания они оба являются поддоменами изтот же домен, расположенный на том же V-сервере.
Если я нахожусь в моей среде разработки, он работает со следующим кодом:
protected async Task<HttpResponseMessage> Get(string urlParam = "")
{
string url = _url;
if (!string.IsNullOrWhiteSpace(urlParam))
{
url = $"{_url}?{urlParam}";
}
NetworkCredential credentials = null;
if (!string.IsNullOrEmpty(ServiceUser))
{
credentials = !string.IsNullOrEmpty(ServiceuserDomain)
? new NetworkCredential(ServiceUser, Servicepassword, ServiceuserDomain)
: new NetworkCredential(ServiceUser, Servicepassword);
}
using (var handler = new HttpClientHandler {Credentials = credentials})
{
using (var httpClient = new HttpClient(handler))
{
HttpResponseMessage responseMessage = null;
try
{
responseMessage = await httpClient.GetAsync(url);
}
...
Я также могу подключиться с этим кодом к моемуразвернутый API ( SITE B )
Файл web.config SITE A не имеет «специальных» конфигураций.Анонимная аутентификация включена, а аутентификация Windows отключена.
Файл web.config SITE B имеет следующую «специальную» конфигурацию:
<system.web>
<compilation debug="true" targetFramework="4.6.1" defaultLanguage="c#" />
<httpRuntime targetFramework="4.6.1" />
<customErrors mode="Off" />
<authentication mode="Windows"/>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
<location path="swagger">
<system.web>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="api">
<system.web>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
</location>
, которая в основном разрешает анонимный доступна сайт, за исключением / api и /swagger.
Если я тестирую вызов API для SITE B из POSTMAN, используя новый NTLM BETA Authentication, он работает также.Учетные данные определенно не ошибаются, но всякий раз, когда я прохожу через файлы журнала SITE B , я вижу:
2019-06-03 12:08:43 212.147.60.15 GET /api/form/ from=0&to=99/ 443 - IP HTTP/1.1 - - sub.domain.ch 401 0 0 2661 114 0
2019-06-03 12:08:43 212.147.60.15 GET /api/form/ from=0&to=99/ 443 - IP HTTP/1.1 - - sub.domain.ch 401 1 3221225581 6661 773 0
Кроме того, оба субдомена на этом сервере имеют один и тот же IP-адрес, но я не думаю, что это связано.К сожалению, в моем случае я не могу получить доступ к Windows Server.У меня просто есть PLESK доступ для управления доменами / файлами.