• 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;
      
  • 相关阅读:
    DFC-3C和DFC-3B的区别和注意事项
    Bug搬运工-CSCux99539:Intermittent error message "Power supply 2 failed or shutdown"
    EVE上传Dynamips、IOL和QEMU镜像
    EVE扩大虚拟内存
    EVE磁盘扩容
    VMware安装EVE
    介绍Mobility Group
    Bug搬运工-CSCvi02106 :Cisco 2800, 3800, 1560 APs: when connected to a Cisco Switch CDP-4-DUPLEX_MISMATCH log is seen
    jquery.autocomplete在火狐下的BUG解决
    nodeJS中exports和mopdule.exports的区别
  • 原文地址:https://www.cnblogs.com/woxpp/p/6232319.html
Copyright © 2020-2023  润新知