Нужен пример простого сервиса, исмользующего wsDualHttpBindng и поддерживающего шифрвание на уровне сообщений. Сервис уже есть, для него студией генерируется прокси и конфиг файл. Интересует как теперь запихнуть конфиг внутрь прокси ?
Код для сервиса
// ищем нужный сертификат в хранилище
X509Certificate2 cert = null;
X509Store certStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
certStore.Open(OpenFlags.ReadOnly);
for (int i = 0; i < certStore.Certificates.Count; i++)
if (certStore.Certificates[i].SubjectName.Name == "CN=testsvc")
cert = certStore.Certificates[i];
certStore.Close();
WSDualHttpBinding binding = new WSDualHttpBinding(WSDualHttpSecurityMode.Message);
binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
binding.MaxReceivedMessageSize = Int32.MaxValue;
// устанавливаем параметры аутентификации
_AdminHost.Credentials.UserNameAuthentication.UserNamePasswordValidationMode = UserNamePasswordValidationMode.Custom;
_AdminHost.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = new AdminUserNameValidator();
// указываем используемый сертификат
// _AdminHost - это хост
_AdminHost.Credentials.ServiceCertificate.Certificate = cert;
// наша конечная точка
_AdminHost.AddServiceEndpoint(typeof(IServiceAdmin),
binding,
new Uri("http://localhost:999/ServiceAdmin"));
// mex
_AdminHost.Description.Behaviors.Add(new ServiceMetadataBehavior());
Binding mexBinding = MetadataExchangeBindings.CreateMexHttpBinding();
_AdminHost.AddServiceEndpoint(typeof(IMetadataExchange),
mexBinding,
new Uri("http://localhost:999/ServiceAdmin/mex"));
Как создать аналогичную картину (без конфига) на клиенте??