У меня абсолютный кошмар, пытающийся заставить это работать.Может кто-нибудь, пожалуйста, укажите мне правильное направление или скажите, где я иду не так?
Я создал сертификат, который находится в LocalMachine\My
.
- У меня есть консольприложение, которое размещает WCF WebService.
- У меня есть веб-сайт ASP.NET, который подключается к WebService.
Я следовал советам по этому сайту и другим, а также документации, но, похоже, что-то не хватает, так как мой ASP.NETвеб-сайт все еще может подключаться к WebService без аутентификации.
Итак, подведем итог: веб-сайт подключается к веб-службе в порядке, что указывает на то, что аутентификация не работает, так как я пока не сообщал веб-сайту, какие настройки безопасности необходимы для подключения к веб-службе.
Заранее спасибо
Вот информация:
Консольное приложение (хостинг WebService)
Program.cs
Хост WebService (консольное приложение) используетследующий код в
ServiceHost host = new ServiceHost(typeof(MyService));
host.Open();
App.Config (сокращенно)
<services>
<service behaviorConfiguration="MetaDataBehaviour" name="MyService_Provider.MyService">
<clear />
<endpoint address="myService" binding="wsHttpBinding" contract="MyService_Provider.IMyService"
listenUriMode="Explicit" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080" />
</baseAddresses>
</host>
</service>
</services>
MyService Provider
App.Config (сокращенно)
<system.serviceModel>
<bindings />
<client />
<services>
<service behaviorConfiguration="MyService_Provider.Service1Behavior"
name="MyService_Provider.MyService">
<endpoint address="" binding="wsHttpBinding" contract="MyService_Provider.IMyService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8732/Design_Time_Addresses/MyService_Provider/Service1/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyService_Provider.Service1Behavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="MyService_Provider.CredentialsValidator,MyService_Provider"/>
<serviceCertificate findValue="mycert" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>