У меня возникли трудности с аутентификацией 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.
Failed Request Tracing:
Да, вы могли бы это сделать. Или делает то же самое. – cgatian
Я делаю запрос через VPN, может ли это быть проблемой? – cgatian
Это может быть проблема да, это зависит от многих вещей, но да, это может быть возиться с механизмом вызова/ответа NTLM. Можете ли вы проверить код внутри сети, чтобы узнать, не имеет значения. –