Tôi có dịch vụ ASP.NET Web API chạy trên máy chủ web có bật Xác thực Windows.Không thể xác thực dịch vụ ASP.NET Web Api với HttpClient
Tôi có trang web khách hàng được xây dựng trên MVC4 chạy trên một trang web khác trên cùng một máy chủ web sử dụng HttpClient để lấy dữ liệu từ dịch vụ. Trang web khách hàng này chạy với tính năng mạo danh danh tính được bật và cũng sử dụng xác thực cửa sổ.
Máy chủ web là Windows Server 2008 R2 với IIS 7.5.
Thách thức mà tôi đang gặp là nhận HttpClient để chuyển người dùng cửa sổ hiện tại như một phần của quá trình xác thực của nó. Tôi đã cấu hình HttpClient theo cách này:
var clientHandler = new HttpClientHandler();
clientHandler.UseDefaultCredentials = true;
clientHandler.PreAuthenticate = true;
clientHandler.ClientCertificateOptions = ClientCertificateOption.Automatic;
var httpClient = new HttpClient(clientHandler);
sự hiểu biết của tôi là chạy các trang web với mạo danh sắc được kích hoạt và sau đó xây dựng cho khách hàng theo cách này nên dẫn đến việc khách hàng chứng thực với dịch vụ bằng cách sử dụng danh tính mạo nhận của hiện đang đăng nhập người dùng.
Điều này không xảy ra. Trong thực tế, khách hàng dường như không được xác thực ở tất cả.
Dịch vụ được định cấu hình để sử dụng xác thực cửa sổ và điều này có vẻ hoạt động hoàn hảo. Tôi có thể truy cập http://server/api/shippers trong trình duyệt web của mình và được nhắc xác thực cửa sổ, khi đã nhập, tôi nhận được dữ liệu được yêu cầu.
Trong nhật ký IIS, tôi thấy các yêu cầu API được nhận mà không có xác thực và nhận được phản hồi thử thách 401.
Tài liệu về tài liệu này có vẻ thưa thớt.
Tôi cần một số thông tin chi tiết về những gì có thể sai hoặc một cách khác để sử dụng xác thực cửa sổ với ứng dụng này.
cảm ơn, Craig
Cũng được phát hiện! .. – Aliostad
Tôi đã tiếp tục và đặt các giá trị này mà không thay đổi hành vi. Điều kỳ lạ là tôi có thể thấy khách hàng nhấn máy chủ và nhận được phản hồi 401. HttpClient dường như KHÔNG gửi bất kỳ thông tin xác thực nào và chỉ nhận được 401 và thoát. Có thêm suy nghĩ nào không? –
Ngoài ra, tôi đã thay đổi danh tính của nhóm ứng dụng mà máy khách đang chạy để trở thành tài khoản windows có quyền truy cập vào dịch vụ. Điều này dẫn đến không thay đổi. Tôi bị mất trên cái này? –