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
6
A
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
.
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
- 1. Thực hiện yêu cầu tiêu đề HTTP với netcat
- 2. Tiêu đề yêu cầu HTTP: Biến UserAgent
- 3. URL yêu cầu HTTP có phải là một phần của tiêu đề yêu cầu HTTP không?
- 4. Cách xác định "tiêu đề yêu cầu http" trong OpenURI
- 5. Symfony2: gửi yêu cầu HTTP
- 6. Yêu cầu HTTP không được ủy quyền với lược đồ xác thực ứng dụng khách 'Ẩn danh'. Tiêu đề xác thực nhận được từ máy chủ là 'NTLM'
- 7. Tiêu đề yêu cầu HTTP tùy chỉnh trong HTML
- 8. Làm cách nào để gửi tiêu đề tùy chỉnh với urllib2 trong Yêu cầu HTTP?
- 9. Gửi http xóa yêu cầu
- 10. Đọc tiêu đề tùy chỉnh yêu cầu HTTP
- 11. Gửi tiêu đề http với python
- 12. yêu cầu http với powershell
- 13. Tiêu đề phạm vi Http yêu cầu toàn bộ tệp
- 14. Nhận tiêu đề phản hồi từ yêu cầu HTTP Ruby
- 15. Nén tiêu đề Http
- 16. Gửi yêu cầu http trong node.js
- 17. Tắt yêu cầu OPTION preflight khi gửi yêu cầu miền chéo với tiêu đề HTTP tùy chỉnh
- 18. redirect_to với tiêu đề HTTP
- 19. Xóa tiêu đề từ Angular.js $ http yêu cầu
- 20. Yêu cầu HTTP không được cho phép với cơ chế thẩm định khách hàng NTLM '
- 21. Gửi yêu cầu HTTP POST trong iOS với JSON
- 22. Sửa đổi tiêu đề HTTP cho một yêu cầu JSONP
- 23. Gửi yêu cầu đăng bằng lưới/http
- 24. telnet gửi một yêu cầu http
- 25. Gửi tiêu đề yêu cầu HTTP tùy chỉnh bằng thẻ âm thanh HTML5
- 26. Yêu cầu HTTP có xác thực cơ bản
- 27. NSURLYêu cầu đặt tiêu đề HTTP
- 28. Cách gửi tiêu đề HTTP trong java
- 29. Mục tiêu-C async http yêu cầu
- 30. Gửi tiêu đề tùy chỉnh cùng với yêu cầu qtwebkit
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 –