У меня есть консольное приложение, которое используется для запуска (открытия) моих служб wcf. У меня есть веб-приложение, которое использует эти службы.Как я могу реализовать безопасность на транспортном уровне с аутентификацией?
У меня есть это до сих пор: service:
WSHttpBinding binding = new WSHttpBinding(SecurityMode.Transport);
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
ServiceHost svh = new ServiceHost(Type.GetType(MyClass);
svh.AddServiceEndpoint(IMyClass, binding, "https://localhost:9090/ServiceTest");
ServiceMetadataBehavior sb = new ServiceMetadataBehavior();
sb.HttpsGetEnabled = true;
sb.HttpsGetUrl = new Uri("https://localhost:9090/ServiceTest");
svh.Description.Behaviors.Add(sb);
svh.Open();
Клиент:
WSHttpBinding binding = new WSHttpBinding(SecurityMode.Transport);
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
EndpointIdentity endpointIdentity = EndpointIdentity.CreateDnsIdentity("localhost");
EndpointAddress endPoint = new EndpointAddress(new Uri("https://localhost:9090/ServiceTest"), endpointIdentity, new AddressHeaderCollection());
ChannelFactory<T> engineFactory = new ChannelFactory<T>(binding, endPoint);
T MyService = engineFactory.CreateChannel();
Сначала я запускаю консольное приложение... и все мои сервисы открыты.
но когда я вызываю метод в сервисе из веб-приложения, я получаю исключение, говорящее:
An error occurred while making the HTTP request to
https://localhost:9090/ServiceTest. This could be due to the fact that the
server certificate is not configured properly with HTTP.SYS in the HTTPS case. This
could also be caused by a mismatch of the security binding between the client and the
server.
когда я гуглю ... я обнаружил, что янужно установить ssl сертификаты на iis ... но мои службы размещены в консольном приложении ... тогда как я могу установить эти сертификаты?Кроме того, как я могу установить имя пользователя и пароль, чтобы разрешить использование службы?