2009-10-05 3 views
6

Я хочу войти в портал Sharepoint, который вызывает диалог входа в систему, но использует аутентификацию NTLM. Как изменить HTTP-заголовки на C# для успешного входа в систему? Я предполагаю, что мне нужно будет сделать HTTPWebRequest на странице в зарегистрированном разделе портала и разместить коллекцию заголовков HTTP рядом с этим?Отправка HTTP-заголовков с HTTP-верификацией HTTP для проверки подлинности NTLM

ответ

18

Вы можете сделать это, используя класс WebRequest.

WebRequest req = WebRequest.Create(tokenUri); 
req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested; 
req.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; 
WebResponse resp = req.GetResponse(); 
StreamReader reader = new StreamReader(resp.GetResponseStream()); 
var token = reader.ReadToEnd().Trim(); 

Этот код читает весь ответ в переменную под названием token.

+7

При попытке этого я получаю 'Удаленный сервер возвратил ошибку: (401) Неавторизованный'. Тот же URL-адрес/пользователь/пароль работает в Firefox. NTLM через HTTP –

2

Чтобы использовать NTLM, см. John's ответ. Если вам нужно, чтобы заголовки через сеансы просматривали свойство CookieContainer объекта HttpWebRequest. Вам нужно будет сохранить ссылку на ваш CookieContainer и прикрепить его к любым другим HttpWebRequests, которые вы делаете.

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