Ответ 1
Да, документация MSDN довольно понятна:
C#
public ClientCredentials Credentials { get; }
Свойство только имеет аксессуар get
- нет набора доступа → он только для чтения.
Также в документах MSDN:
Замечания
Объект ClientCredentials сохраняется как тип поведения конечных точек и может получить доступ через Поведение свойство.Метод OnOpened инициализирует только для чтения. Объект ClientCredentials для factory.
Итак, что вы здесь делаете?
UPDATE: вы не можете установить учетные данные пользователя, которые ваш клиентский прокси должен использовать на канале factory. См. отличное сообщение в блоге о том, как это сделать в любом случае - с небольшим обходом:
- сначала удалите поведение конечной точки по умолчанию из factory
- во-вторых, создайте собственные учетные данные
-
в-третьих, установите эти новые учетные данные как новое поведение конечной точки на factory
// 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
Кажется немного странным и сложным, но это, кажется, единственный и единственный способ достичь этого!