Windows wsHttpBinding 身份验证的 WCF 服务器配置
WCF Server Configuration for Windows Authentication for wsHttpBinding
我必须在服务器上托管的服务上实施 "Windows Authentication"。
我正在使用 "wsHttpBinding"。其中"Message"是默认的安全模式。
以下是我的服务器配置:
web.config
<authentication mode="Windows" />
<services>
<service name="WCFWsHttpBindingHttps.Service1" behaviorConfiguration="WCFWsHttpBindingHttps.Service1Behavior">
<!-- Service Endpoints -->
<endpoint address="" binding="wsHttpBinding" contract="WCFWsHttpBindingHttps.IService1">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WCFWsHttpBindingHttps.Service1Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
以下是我的 IIS 配置:
尽管进行了所有配置,但我无法访问我的服务。
任何人都可以通知我哪里出错或者我错过了任何配置。
我在尝试访问我的服务时收到以下错误。
当您使用wsHttpBinding
时,安全模式必须是Transport
才能在IIS上使用Windows身份验证,在另一端消费者需要配置服务器证书.
如果您使用其他安全模式,您将遇到以下异常:
Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.
所以你必须wsHttpBinding
如下:
<wsHttpBinding>
<binding>
<security mode="Transport">
<transport clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
如果您使用 Message
安全模式,这意味着您将通过非安全传输发送加密消息,并且要加密消息,您将必须使用自己的证书,在其他情况下在这方面,您还必须配置客户端如何验证证书,这可确保消费者正在协商正确的服务。
我必须在服务器上托管的服务上实施 "Windows Authentication"。
我正在使用 "wsHttpBinding"。其中"Message"是默认的安全模式。
以下是我的服务器配置:
web.config
<authentication mode="Windows" />
<services>
<service name="WCFWsHttpBindingHttps.Service1" behaviorConfiguration="WCFWsHttpBindingHttps.Service1Behavior">
<!-- Service Endpoints -->
<endpoint address="" binding="wsHttpBinding" contract="WCFWsHttpBindingHttps.IService1">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WCFWsHttpBindingHttps.Service1Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
以下是我的 IIS 配置:
尽管进行了所有配置,但我无法访问我的服务。
任何人都可以通知我哪里出错或者我错过了任何配置。
我在尝试访问我的服务时收到以下错误。
当您使用wsHttpBinding
时,安全模式必须是Transport
才能在IIS上使用Windows身份验证,在另一端消费者需要配置服务器证书.
如果您使用其他安全模式,您将遇到以下异常:
Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.
所以你必须wsHttpBinding
如下:
<wsHttpBinding>
<binding>
<security mode="Transport">
<transport clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
如果您使用 Message
安全模式,这意味着您将通过非安全传输发送加密消息,并且要加密消息,您将必须使用自己的证书,在其他情况下在这方面,您还必须配置客户端如何验证证书,这可确保消费者正在协商正确的服务。