Tôi có dịch vụ WCF bằng cách sử dụng BasicHttpBinding với xác thực Windows. Hầu hết khách hàng là tài khoản miền và kết nối với dịch vụ bằng thông tin đăng nhập mặc định của họ.Cách chỉ định thông tin đăng nhập Windows trong tệp cấu hình máy khách WCF
Bây giờ tôi muốn kết nối với dịch vụ từ máy khách ASP.NET đang chạy trong tài khoản cục bộ. Tôi muốn kết nối với dịch vụ WCF bằng cách sử dụng các thông tin đăng nhập Windows (domain \ user và password) có sẵn cho ứng dụng ASP.NET.
Tôi biết tôi có thể thực hiện việc này bằng mã sử dụng ClientBase < T> .ClientCredentials.
Có cách nào để chỉ định thông tin đăng nhập (tên miền \ người dùng và mật khẩu) trong tệp web.config của ứng dụng khách để tôi không phải thay đổi mã không?
EDIT
Nếu nó không thể được thực hiện trong các tập tin cấu hình, là có một cách sử dụng System.Net.ICredentials hoặc System.Net.NetworkCredential như một chứng chỉ cho một dịch vụ WCF? Một khung công tác .NET cung cấp những cách này như một cách đồng nhất để cung cấp thông tin đăng nhập mạng, nhưng với WCF, điều này dường như đã bị ném ra để ủng hộ một hệ thống không tương thích mới dựa trên lớp System.ServiceModel.Description.ClientCredentials không liên quan.
EDIT 2
Chấp nhận câu trả lời của Marc cho câu hỏi ban đầu - có vẻ như không có cách nào để làm điều này trong tập tin cấu hình máy khách :(
tôi sẽ coi đây là một sự thiếu hụt trong WCF - Tôi không chấp nhận rằng Microsoft nên cố ý ngăn cản chúng tôi đưa thông tin đăng nhập vào tệp cấu hình - sau khi tất cả chúng phải được lưu trữ ở đâu đó và Khung bao gồm các cơ sở để mã hóa tệp cấu hình. , nhưng nó phải có sẵn trong hộp.
Nó cũng có một chút không nhất quán: phần tử cấu hình system.net/mailSettings/smtp/network cho phép xác thực thông tin, vậy tại sao không phải WCF?
Về câu hỏi thứ hai về việc sử dụng System.Net.NetworkCredential, có vẻ như từ this blog rằng nó là có thể, ít nhất là khi sử dụng Windows authentication, với đoạn mã sau:
factory.Credentials.Windows.ClientCredential =
new System.Net.NetworkCredential(name, password, domain);
"... trong tập tin cấu hình của bạn, trong văn bản đơn giản" không phải là nói chung là một điều tốt, nhưng trong file config mã hóa là OK. – Joe
@marc_s Nó vẫn không có sẵn để thiết lập thông qua tập tin cấu hình? –
@Johnny_D: không, không xa như tôi biết. –