• WCF 安全性 之 Windows


    案例下载

    http://download.csdn.net/detail/woxpp/4113172

    服务端配置代码

      <system.serviceModel>
        <services>
          <service name="WcfServiceLibrary.ServiceTcp">
            <endpoint address="net.tcp://localhost:8731/WcfServiceLibrary"
              binding="netTcpBinding" bindingConfiguration="testnetTcpBinding"
              contract="WcfServiceLibrary.IService1">
              <identity>
                <dns value="localhost" />
              </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            <host>
              <baseAddresses>
                <add baseAddress="http://localhost:8732/WcfServiceLibrary" />
              </baseAddresses>
            </host>
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- 为避免泄漏元数据信息,
              请在部署前将以下值设置为 false 并删除上面的元数据终结点  -->
              <serviceMetadata httpGetEnabled="True"/>
              <!-- 要接收故障异常详细信息以进行调试,
              请将以下值设置为 true。在部署前设置为 false 
                以避免泄漏异常信息-->
              <serviceDebug includeExceptionDetailInFaults="False" />
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <bindings>
          <netTcpBinding>
            <binding name="testnetTcpBinding">
              <security mode="Message">
                <transport clientCredentialType="None" protectionLevel="None"></transport>
                <message clientCredentialType="Windows"/>
              </security>
            </binding>
          </netTcpBinding>
        </bindings>
      </system.serviceModel>

    客户端调用代码 通过代理类

    http://www.cnblogs.com/woxpp/p/6232298.html

    客户端代码

        //获取域名
                String hostName = Dns.GetHostName();
                IPHostEntry ipH = new IPHostEntry();
                ipH = Dns.Resolve(hostName); 
                NetTcpBinding netTcp = new NetTcpBinding();
                netTcp.Security.Mode = SecurityMode.Message;
                netTcp.Security.Transport.ProtectionLevel = ProtectionLevel.None;
                netTcp.Security.Transport.ClientCredentialType = TcpClientCredentialType.None;
                netTcp.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
                ChannelFactory<IService1> factory = new ChannelFactory<IService1>(netTcp);
                factory.Credentials.Windows.ClientCredential.UserName = "panpan.xu";
                factory.Credentials.Windows.ClientCredential.Password = "123.xpp";
                factory.Credentials.Windows.ClientCredential.Domain = "panpanxu-PC";
                IService1 proxy = factory.CreateChannel(new EndpointAddress("net.tcp://localhost:8731/WcfServiceLibrary"));
                txtMessage.Text = proxy.GetDataUsingDataContract(new WcfServiceLibrary.CompositeType() { StringValue = "sssss" }).StringValue;
      
  • 相关阅读:
    ArrayBlockingQueue的使用案例:
    mysql中insert into select from的使用
    springboot项目中进行并发测试
    springboot自己实现mysql主从数据切换机制
    启动zuul时候报错:The bean 'proxyRequestHelper', defined in class path resource [org/springframework/cloud/netflix/zuul
    redis集群
    postman创建mocker Server
    springcloud应用思考
    vue进行路由拼图的使用案例
    【适合N卡独显电脑的环境配置】Tensorflow教程-Windows 10下安装tensorflow 1.5.0 GPU with Anaconda
  • 原文地址:https://www.cnblogs.com/woxpp/p/6232319.html
Copyright © 2020-2023  润新知