【发布时间】:2010-12-14 11:35:55
【问题描述】:
我正在做一场噩梦,试图让它发挥作用。有人可以指出我正确的方向或告诉我哪里出错了吗?
我创建了一个位于LocalMachine\My 的证书。
- 我有一个控制台应用程序 托管 WCF WebService。
- 我有一个 ASP.NET 网站连接到 网络服务。
我已遵循此站点以及其他站点和文档上的建议,但似乎缺少某些内容,因为我的 ASP.NET 网站仍然可以在没有身份验证的情况下连接到 WebService。
总结一下:网站连接到网络服务正常,这表明身份验证不起作用,因为我还没有告诉网站连接到网络服务需要哪些安全设置。
提前谢谢你
这里是信息:
控制台应用(托管 WebService)
程序.cs
WebService Host(控制台应用)在
中使用如下代码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>
我的服务提供者
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>
【问题讨论】:
标签: c# .net wcf wcf-binding wcf-security