WebProxy.UseDefaultCredentials có thể đặt lại thông tin xác thực rõ ràng
Tránh đặt lại tài khoản proxy .NET rõ ràng bằng cách gán UseDefaultCredentials sau đó.
Trình tự này trông có vẻ rõ ràng, nhưng trong .NET 10 nó kết thúc mà không có thông tin xác thực proxy nào:
proxy.Credentials = new NetworkCredential(proxyUser, proxyPassword);
proxy.UseDefaultCredentials = false;
Trong cách triển khai WebProxy của .NET 10, đặt UseDefaultCredentials thành false sẽ gán null cho Credentials. Đặt thành true sẽ chọn CredentialCache.DefaultCredentials. Hai thuộc tính kiểm soát cùng một lựa chọn tài khoản.
Đối với tài khoản dành riêng cho dịch vụ, hãy gán thông tin xác thực mong muốn mà không đặt lại sau đó:
var proxy = new WebProxy("http://proxy.example.net:8080")
{
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
Nếu mã thiết lập hiện có phải tắt rõ ràng thông tin xác thực mặc định, hãy làm điều đó trước khi gán NetworkCredential. Getter của nó có thể là false trong khi thông tin xác thực rõ ràng vẫn hiện diện đúng cách; false không nhất thiết có nghĩa là chưa cấu hình tài khoản nào.
Gắn đối tượng này vào handler thực hiện yêu cầu. Đối với xác thực Windows tích hợp, thay vào đó hãy chủ động chọn thông tin xác thực mặc định, sử dụng danh tính áp dụng của tiến trình.
Kiểm tra thứ tự khởi tạo đối tượng và các phương thức trợ giúp để tìm các gán sau đó thay thế tài khoản mong muốn. Gắn chẩn đoán này với cách triển khai WebProxy đang dùng; một thuộc tính cùng tên trên handler HTTP có thể chi phối một phạm vi xác thực khác.