Vâng, MSDN documentation là khá rõ ràng:
C#
public ClientCredentials Credentials { get; }
Thuộc tính chỉ có accessor get
- không có bộ accessor -> đó là chỉ đọc.
Cũng trong tài liệu MSDN:
Bình luận
object ClientCredentials được lưu trữ như một loại hành vi đầu cuối và có thể được truy cập thông qua Hành vi tài sản.
Phương pháp OnOpened khởi một read-only sao chép của ClientCredentials đối tượng cho nhà máy .
Vì vậy, bạn đang làm gì để làm ở đây ??
CẬP NHẬT: bạn không thể đặt thông tin xác thực người dùng mà proxy ứng dụng của bạn được cho là sử dụng trên nhà máy kênh. Xem excellent blog post này về cách để làm điều đó anyway - với một chút của một đường vòng:
- đầu tiên, loại bỏ các hành vi đầu cuối mặc định từ nhà máy
- thứ hai, nhanh chóng các thông tin riêng của bạn
thứ ba, thiết lập những thông tin mới như hành vi đầu cuối mới về nhà máy
// step one - find and remove default endpoint behavior
var defaultCredentials = factory.Endpoint.Behaviors.Find<ClientCredentials>();
factory.Endpoint.Behaviors.Remove(defaultCredentials);
// step two - instantiate your credentials
ClientCredentials loginCredentials = new ClientCredentials();
loginCredentials.UserName.UserName = CServiceCredentials.Instance.Username;
loginCredentials.UserName.Password = “Password123″;
// step three - set that as new endpoint behavior on factory
factory.Endpoint.Behaviors.Add(loginCredentials); //add required ones
có vẻ một chút kỳ lạ và phức tạp, nhưng điều đó dường như là o ne và cách duy nhất để đạt được điều này!
Nguồn
2010-03-07 20:55:10
ok .. vậy tôi nên đặt ở đâu? –
nhưng nhìn vào mã của tôi .. trước tiên tôi tạo ra một ChannelFactory .. sau đó tôi đặt thông tin đăng nhập. –
nhưng tôi không thể như _Channel của tôi là loại IWCFSeekFactory –