2

У меня возникли трудности с аутентификацией HttpWebRequest на веб-сервере. Ответ, который я получаю, - это просто 401. Я убедился, что правильно установил учетные данные на стороне C#, а IIS правильно настроен для разрешения аутентификации NTLM. Я не знаю, имеет ли это значение, но компьютер не находится в том же домене, что и веб-сервер.HttpWebRequest 401 с аутентификацией NTLM

Я уверен, что пользователь/пароль правильно, но существуют ли какие-либо другие параметры авторизации, необходимые для настройки на пользователя?

Если я включил обычную проверку подлинности и отключил проверку подлинности Windows, запрос работает отлично (при правильном изменении кода на C#, конечно).

Что мне не хватает?

webRequest.UseDefaultCredentials = false; 
    webRequest.PreAuthenticate = true; 
    var c = new NetworkCredential("User", "password", "domain"); 

    CredentialCache credentialCache = new CredentialCache(); 
    credentialCache.Add(new Uri(Url), "NTLM", c); 
    webRequest.Credentials = credentialCache; 

Heres моментальный снимок моих настроек в IIS.

IIS Authentication Configuration

Failed Request Tracing:

Tracing Error Log

ответ

1

С помощью коллеги мы смогли определить, что что-то не так в том, как Windows справляется с аутентификацией. Похоже, что настройка в локальной безопасности была неправильной. Изменение Локальные политики> Параметры безопасности> Доступ к сети: совместное использование и модель безопасности для локальных учетных записей только от гостя - локальные пользователи аутентифицируются как Гость в Classic, исправили проблему.

enter image description here

0

Что такое ценность верительных строк кэша,

CredentialCache credentialCache = new CredentialCache(); 
credentialCache.Add(new Uri(Url), "NTLM", c); 

почему бы не просто установить

webRequest.Credentials = c; 

401,2, вероятно, означает, что либо, что веб-сервер, который вы подключаетесь, не включен использовать NTLM (который он, кажется, в соответствии с скриншоте), или что есть прокси между клиентом и веб-сервером

+0

Да, вы могли бы это сделать. Или делает то же самое. – cgatian

+0

Я делаю запрос через VPN, может ли это быть проблемой? – cgatian

+0

Это может быть проблема да, это зависит от многих вещей, но да, это может быть возиться с механизмом вызова/ответа NTLM. Можете ли вы проверить код внутри сети, чтобы узнать, не имеет значения. –

Смежные вопросы