2009-10-05 52 views
6

Tôi muốn đăng nhập vào cổng thông tin Sharepoint, nó sẽ trả về hộp thoại đăng nhập nhưng đang sử dụng xác thực NTLM. Làm thế nào tôi có thể sửa đổi các tiêu đề HTTP trong C# để thực hiện một yêu cầu đăng nhập thành công? Tôi giả sử tôi sẽ cần phải thực hiện một HTTPWebRequest đến một trang trong phần đăng nhập của cổng thông tin và đăng các bộ sưu tập tiêu đề HTTP cùng với điều này?Gửi Tiêu đề HTTP với Yêu cầu Web HTTP để Xác thực NTLM

Trả lời

18

Bạn có thể thực hiện việc này bằng lớp 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(); 

Mã này đọc toàn bộ phản hồi thành biến được gọi là token.

+7

Khi thử điều này, tôi nhận được 'Máy chủ từ xa đã trả về lỗi: (401) Không được phép'. Cùng một URL/người dùng/mật khẩu hoạt động trên Firefox. NTLM qua HTTP –

2

Để sử dụng NTLM, hãy xem câu hỏi John's. Nếu bạn cần phải có tiêu đề qua các phiên xem xét thuộc tính CookieContainer trên đối tượng HttpWebRequest. Bạn sẽ cần phải giữ một tham chiếu đến CookieContainer của bạn và đính kèm nó vào bất kỳ HttpWebRequests nào khác mà bạn thực hiện.

Các vấn đề liên quan