zoukankan      html  css  js  c++  java
  • EndpointIdentity.CreateDnsIdentity 方法

    通过此标识连接到终结点的安全 客户端将验证由服务器提供的声明是否包含一个表示此标识的 DNS 声明。

    public static void CreateRSAIdentity()
    {
        // Create a ServiceHost for the CalculatorService type. Base Address is supplied in app.config.
        using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService)))
        {
            // The base address is read from the app.config.
            Uri dnsrelativeAddress = new Uri(serviceHost.BaseAddresses[0], "dnsidentity");
            Uri certificaterelativeAddress = new Uri(serviceHost.BaseAddresses[0], "certificateidentity");
            Uri rsarelativeAddress = new Uri(serviceHost.BaseAddresses[0], "rsaidentity");
    
            // Set the service's X509Certificate to protect the messages.
            serviceHost.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine,
                                                               StoreName.My,
                                                               X509FindType.FindBySubjectDistinguishedName,
                                                                "CN=identity.com, O=Contoso");
            //Cache a reference to the server's certificate.
            X509Certificate2 servercert = serviceHost.Credentials.ServiceCertificate.Certificate;
    
            //Create endpoints for the service using a WSHttpBinding set for anonymous clients.
            WSHttpBinding wsAnonbinding = new WSHttpBinding(SecurityMode.Message);
            //Clients are anonymous to the service.
            wsAnonbinding.Security.Message.ClientCredentialType = MessageCredentialType.None;
            //Secure conversation (session) is turned off.
            wsAnonbinding.Security.Message.EstablishSecurityContext = false;
    
            //Create a service endpoint and change its identity to the DNS for an X509 Certificate.
            ServiceEndpoint ep = serviceHost.AddServiceEndpoint(typeof(ICalculator),
                                                                wsAnonbinding,
                                                                String.Empty);
            EndpointAddress epa = new EndpointAddress(dnsrelativeAddress, EndpointIdentity.CreateDnsIdentity("identity.com"));
            ep.Address = epa;
    
            //Create a service endpoint and change its identity to the X509 certificate's RSA key value.
            ServiceEndpoint ep3 = serviceHost.AddServiceEndpoint(typeof(ICalculator), wsAnonbinding, String.Empty);
            EndpointAddress epa3 = new EndpointAddress(rsarelativeAddress, EndpointIdentity.CreateRsaIdentity(servercert));
            ep3.Address = epa3;
    
  • 相关阅读:
    SZU:B47 Big Integer II
    Plan : 破晓
    C程序设计语言(第二版)习题:第二章
    Linux : fedora 安装 vnc server
    Linux系统编程:客户端-服务器用FIFO进行通信
    Linux系统编程:dup2()重定向
    Vijos: P1046观光旅游
    FLOYD 求最小环
    uva 401.Palindromes
    codeforces Educational Codeforces Round 5 A. Comparing Two Long Integers
  • 原文地址:https://www.cnblogs.com/EasyLive2006/p/1932334.html
Copyright © 2011-2022 走看看