X509CertificateRecipientServiceCredential.SetCertificate Método

Definição

Especifica o certificado a usar para representar o serviço.

Sobrecargas

Name Description
SetCertificate(String)

Especifica o certificado a usar para representar o serviço, especificando o nome distinto em questão.

SetCertificate(String, StoreLocation, StoreName)

Especifica o certificado a usar para representar o serviço, especificando o nome distinto do sujeito, o nome do armazenamento do certificado e a localização do armazenamento.

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Especifica o certificado a usar para representar o serviço, especificando parâmetros de consulta como storeLocation, storeName, findType e findValue.

SetCertificate(String)

Especifica o certificado a usar para representar o serviço, especificando o nome distinto em questão.

public:
 void SetCertificate(System::String ^ subjectName);
public void SetCertificate(string subjectName);
member this.SetCertificate : string -> unit
Public Sub SetCertificate (subjectName As String)

Parâmetros

subjectName
String

Sujeito nome distinto.

Exemplos

O código seguinte mostra como usar este método para definir um certificado para uma credencial de serviço a partir de um nome de sujeito.

NetTcpBinding b = new NetTcpBinding();
b.Security.Mode = SecurityMode.Message;
Type c = typeof(ICalculator);
Uri a = new Uri("net.tcp://MyMachineName/tcpBase");
Uri[] baseAddresses = new Uri[] { a };
ServiceHost sh = new ServiceHost(typeof(MyService), baseAddresses);
sh.AddServiceEndpoint(c, b, "Aloha");
sh.Credentials.ServiceCertificate.SetCertificate(
    "CN=Administrator,CN=Users,DC=johndoe,DC=nttest,DC=microsoft,DC=com");
sh.Open();
Dim b As New NetTcpBinding()
b.Security.Mode = SecurityMode.Message
Dim c As Type = GetType(ICalculator)
Dim a As New Uri("net.tcp://MyMachineName/tcpBase")
Dim baseAddresses() As Uri = { a }
Dim sh As New ServiceHost(GetType(MyService), baseAddresses)
sh.AddServiceEndpoint(c, b, "Aloha")
sh.Credentials.ServiceCertificate.SetCertificate("CN=Administrator,CN=Users,DC=johndoe,DC=nttest,DC=microsoft,DC=com")
sh.Open()

Observações

Para mais informações sobre o subjectName parâmetro, veja SubjectName.

Aplica-se a

SetCertificate(String, StoreLocation, StoreName)

Especifica o certificado a usar para representar o serviço, especificando o nome distinto do sujeito, o nome do armazenamento do certificado e a localização do armazenamento.

public:
 void SetCertificate(System::String ^ subjectName, System::Security::Cryptography::X509Certificates::StoreLocation storeLocation, System::Security::Cryptography::X509Certificates::StoreName storeName);
public void SetCertificate(string subjectName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName);
member this.SetCertificate : string * System.Security.Cryptography.X509Certificates.StoreLocation * System.Security.Cryptography.X509Certificates.StoreName -> unit
Public Sub SetCertificate (subjectName As String, storeLocation As StoreLocation, storeName As StoreName)

Parâmetros

subjectName
String

Sujeito nome distinto.

storeLocation
StoreLocation

A localização do armazenamento de certificados que o serviço utiliza para obter o certificado de serviço.

storeName
StoreName

Especifica o nome da loja de certificados X.509 a abrir.

Exemplos

O código seguinte mostra como usar este método para definir um certificado para uma credencial de serviço.

NetTcpBinding b = new NetTcpBinding();
b.Security.Mode = SecurityMode.Message;
Type c = typeof(ICalculator);
Uri a = new Uri("net.tcp://MyMachineName/tcpBase");
Uri[] baseAddresses = new Uri[] { a };
ServiceHost sh = new ServiceHost(typeof(MyService), baseAddresses);
sh.AddServiceEndpoint(c, b, "Aloha");
sh.Credentials.ServiceCertificate.SetCertificate(
    "CN=Administrator,CN=Users,DC=johndoe,DC=nttest,DC=microsoft,DC=com",
    StoreLocation.LocalMachine,
    StoreName.My);
sh.Open();
Dim b As New NetTcpBinding()
b.Security.Mode = SecurityMode.Message
Dim c As Type = GetType(ICalculator)
Dim a As New Uri("net.tcp://MyMachineName/tcpBase")
Dim baseAddresses() As Uri = { a }
Dim sh As New ServiceHost(GetType(MyService), baseAddresses)
sh.AddServiceEndpoint(c, b, "Aloha")
sh.Credentials.ServiceCertificate.SetCertificate("CN=Administrator,CN=Users,DC=johndoe,DC=nttest,DC=microsoft,DC=com", StoreLocation.LocalMachine, StoreName.My)
sh.Open()

Observações

Para mais informações sobre o subjectName parâmetro, veja SubjectName.

Os valores para storeLocation são incluídos na StoreLocation enumeração:

  • LocalMachine: o armazenamento de certificados atribuído à máquina local (por defeito).

  • CurrentUser: o armazenamento de certificados utilizado pelo utilizador atual.

Se a aplicação cliente estiver a correr sob uma conta do sistema, então o certificado está tipicamente em LocalMachine. Se a aplicação cliente estiver a correr sob uma conta de utilizador, então o certificado está normalmente em CurrentUser.

Os valores para storeName são incluídos na StoreName enumeração.

Aplica-se a

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Especifica o certificado a usar para representar o serviço, especificando parâmetros de consulta como storeLocation, storeName, findType e findValue.

public:
 void SetCertificate(System::Security::Cryptography::X509Certificates::StoreLocation storeLocation, System::Security::Cryptography::X509Certificates::StoreName storeName, System::Security::Cryptography::X509Certificates::X509FindType findType, System::Object ^ findValue);
public void SetCertificate(System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.StoreName storeName, System.Security.Cryptography.X509Certificates.X509FindType findType, object findValue);
member this.SetCertificate : System.Security.Cryptography.X509Certificates.StoreLocation * System.Security.Cryptography.X509Certificates.StoreName * System.Security.Cryptography.X509Certificates.X509FindType * obj -> unit
Public Sub SetCertificate (storeLocation As StoreLocation, storeName As StoreName, findType As X509FindType, findValue As Object)

Parâmetros

storeLocation
StoreLocation

A localização do armazenamento de certificados que o cliente utiliza para obter o certificado do cliente.

storeName
StoreName

Especifica o nome da loja de certificados X.509 a abrir.

findType
X509FindType

Define o tipo de pesquisa X.509 a ser executada.

findValue
Object

O valor a procurar na loja de certificados X.509.

Exemplos

O código seguinte mostra como usar este método para definir um certificado para uma credencial de serviço.

    NetTcpBinding b = new NetTcpBinding();
    b.Security.Mode = SecurityMode.Message;
    Type c = typeof(ICalculator);
    Uri a = new Uri("net.tcp://MyMachineName/tcpBase");
    Uri[] baseAddresses = new Uri[] { a };
    ServiceHost sh = new ServiceHost(typeof(MyService), baseAddresses);
    sh.AddServiceEndpoint(c, b, "Aloha");
    sh.Credentials.ServiceCertificate.SetCertificate(
        StoreLocation.LocalMachine,
        StoreName.My,
        X509FindType.FindByThumbprint,
        "af1f50b20cd413ed9cd00c315bbb6dc1c08da5e6");
    sh.Open();
Dim b As New NetTcpBinding()
b.Security.Mode = SecurityMode.Message
Dim c As Type = GetType(ICalculator)
Dim a As New Uri("net.tcp://MyMachineName/tcpBase")
Dim baseAddresses() As Uri = { a }
Dim sh As New ServiceHost(GetType(MyService), baseAddresses)
sh.AddServiceEndpoint(c, b, "Aloha")
sh.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, "af1f50b20cd413ed9cd00c315bbb6dc1c08da5e6")
sh.Open()

Observações

Os valores para storeLocation são incluídos na StoreLocation enumeração:

  • LocalMachine: o armazenamento de certificados atribuído à máquina local (por defeito).

  • CurrentUser: o armazenamento de certificados utilizado pelo utilizador atual.

Se a aplicação cliente estiver a correr sob uma conta do sistema, então o certificado está tipicamente em LocalMachine. Se a aplicação cliente estiver a correr sob uma conta de utilizador, então o certificado está normalmente em CurrentUser.

Os valores para storeName são incluídos na StoreName enumeração.

Os valores para findType são incluídos na X509FindType enumeração.

A enumeração mais utilizada é FindBySubjectName, que faz uma pesquisa insensível a maiúsculas minúsculas no nome do assunto dos certificados no armazenamento especificado. Esta pode ser uma pesquisa imprecisa. Se mais do que um certificado for devolvido, o primeiro que corresponde à descoberta é usado para representar o cliente.

Aplica-se a