• WCF 安全


    WCF 采用wsHttpBinding

    服务端配置 

    View Code 
     <system.serviceModel>
        <services>
          <service name="WcfService1.Service1" behaviorConfiguration="WcfService1.Service1Behavior">
            <endpoint address="" binding="wsHttpBinding"  contract="WcfService1.IService1" bindingConfiguration="fafaf">
              <identity>
                <dns value="localhost"/>
              </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
          </service>
        </services>
        <bindings>
          <wsHttpBinding>
            <binding name="fafaf">
              <security mode="Message">
                <message clientCredentialType="Certificate" establishSecurityContext="true" negotiateServiceCredential="true"/>

              </security>
            </binding>

          </wsHttpBinding>
        </bindings>
        <behaviors>
          <serviceBehaviors>
            <behavior name="WcfService1.Service1Behavior">
              <serviceMetadata httpGetEnabled="true"/>
              <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
              <serviceDebug includeExceptionDetailInFaults="false"/>
              <serviceCredentials  >
                <serviceCertificate storeLocation="LocalMachine" findValue="www.artech.com" storeName="My" x509FindType="FindBySubjectName"/>
                <clientCertificate>
                  <authentication certificateValidationMode="PeerOrChainTrust" />
                </clientCertificate>
              </serviceCredentials>
            </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>

    客户端配置:

     View Code

     
      <system.serviceModel>
        <bindings>
          <wsHttpBinding>
            <binding name="WSHttpBinding_IService1" closeTimeout="00:01:00"
              openTimeout
    ="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
              bypassProxyOnLocal
    ="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
              maxBufferPoolSize
    ="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
              textEncoding
    ="utf-8" useDefaultWebProxy="true" allowCookies="false">
              <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                maxBytesPerRead
    ="4096" maxNameTableCharCount="16384" />
              <reliableSession ordered="true" inactivityTimeout="00:10:00"
                enabled
    ="false" />
              <security mode="Message">
                <!--<transport clientCredentialType="Windows" proxyCredentialType="None"
                  realm="" />
    -->
                <message clientCredentialType="Certificate" negotiateServiceCredential="true"
                  algorithmSuite
    ="Default" />
              </security>
            </binding>
          </wsHttpBinding>
        </bindings>
        <client>
          <endpoint address="http://192.168.67.64:8024/Service1.svc" behaviorConfiguration="endpointBehavior"
            binding
    ="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService1"
            contract
    ="ServiceReference1.IService1" name="WSHttpBinding_IService1">
            <identity>
              <dns value="www.artech.com" />
            </identity>
          </endpoint>
        </client>
        <behaviors>
          <endpointBehaviors>
            <behavior name="endpointBehavior">
              <clientCredentials>
                <clientCertificate storeName="My" x509FindType="FindBySubjectName"findValue="localhost" storeLocation="LocalMachine"/>
                <serviceCertificate >
                  <authentication certificateValidationMode="PeerOrChainTrust"/>
                </serviceCertificate>
              </clientCredentials>
            </behavior>
          </endpointBehaviors>
        </behaviors>
      </system.serviceModel

    作 者:清水无鱼
    出 处:http://www.cnblogs.com/wzpo/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面 明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    模拟器安装.apk包_夜神模拟器
    SDK安装报错_2019
    Jenkins安装插件方法
    Jenkins安装
    Python项目第三方库安装_pip freeze命令
    深入理解Java虚拟机—内存分配
    深入理解Java虚拟机—垃圾回收 下
    深入理解Java虚拟机—垃圾回收 上
    深入理解Java虚拟机—OutOfMemoryError异常
    深入理解Java虚拟机—Java内存区域
  • 原文地址:https://www.cnblogs.com/wzpo/p/2385659.html
Copyright © 2020-2023  润新知