Compartir a través de


X509CertificateRecipientServiceCredential.SetCertificate Método

Definición

Especifica el certificado que se debe utilizar para representar al servicio.

Sobrecargas

SetCertificate(String)

Especifica el certificado que se debe utilizar para representar el servicio especificando el nombre distintivo (DN) del asunto.

SetCertificate(String, StoreLocation, StoreName)

Especifica el certificado que se debe utilizar para representar el servicio especificando el nombre distintivo (DN) del asunto, el nombre del almacén de certificados y la ubicación de almacenamiento.

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Especifica el certificado que se va a utilizar para representar al servicio especificando los parámetros de la consulta como storeLocation, storeName, findType y findValue.

SetCertificate(String)

Especifica el certificado que se debe utilizar para representar el servicio especificando el nombre distintivo (DN) del asunto.

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

Nombre distintivo del asunto.

Ejemplos

El siguiente código muestra cómo utilizar este método para establecer un certificado para una credencial del servicio a partir de un nombre de asunto.

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()

Comentarios

Para obtener más información sobre el parámetro subjectName, vea SubjectName.

Se aplica a

SetCertificate(String, StoreLocation, StoreName)

Especifica el certificado que se debe utilizar para representar el servicio especificando el nombre distintivo (DN) del asunto, el nombre del almacén de certificados y la ubicación de almacenamiento.

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

Nombre distintivo del asunto.

storeLocation
StoreLocation

La ubicación del almacén de certificados que el servicio utiliza para obtener el certificado del servicio.

storeName
StoreName

Especifica el nombre del almacén del certificado X.509 que se va a abrir.

Ejemplos

El siguiente código muestra cómo utilizar este método para establecer un certificado para una credencial del servicio.

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()

Comentarios

Para obtener más información sobre el parámetro subjectName, vea SubjectName.

Los valores para storeLocation están incluidos en la enumeración StoreLocation:

  • LocalMachine: el almacén de certificados asignado al equipo local (predeterminado).

  • CurrentUser: el almacén de certificados utilizado por el usuario actual.

Si la aplicación cliente se está ejecutando bajo una cuenta del sistema, entonces el certificado está normalmente en LocalMachine. Si la aplicación cliente se está ejecutando en una cuenta de usuario, entonces el certificado se encuentra normalmente en CurrentUser.

Los valores para storeName están incluidos en la enumeración StoreName.

Se aplica a

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Especifica el certificado que se va a utilizar para representar al servicio especificando los parámetros de la consulta como storeLocation, storeName, findType y 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

La ubicación del almacén de certificados que el cliente utiliza para obtener el certificado de cliente.

storeName
StoreName

Especifica el nombre del almacén del certificado X.509 que se va a abrir.

findType
X509FindType

Define el tipo de búsqueda de X.509 que se va a ejecutar.

findValue
Object

El valor que se va a buscar en el almacén de certificados X.509.

Ejemplos

El siguiente código muestra cómo utilizar este método para establecer un certificado para una credencial del servicio.

    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()

Comentarios

Los valores para storeLocation están incluidos en la enumeración StoreLocation:

  • LocalMachine: el almacén de certificados asignado al equipo local (predeterminado).

  • CurrentUser: el almacén de certificados utilizado por el usuario actual.

Si la aplicación cliente se está ejecutando bajo una cuenta del sistema, entonces el certificado está normalmente en LocalMachine. Si la aplicación cliente se está ejecutando en una cuenta de usuario, entonces el certificado se encuentra normalmente en CurrentUser.

Los valores para storeName están incluidos en la enumeración StoreName.

Los valores para findType están incluidos en la enumeración X509FindType.

La enumeración normalmente utilizada es FindBySubjectName, que hace una búsqueda sin distinción entre mayúsculas y minúsculas en el nombre del asunto de certificados en el almacén especificado. Ésta puede ser una búsqueda imprecisa. Si más de un certificado se devuelve, a continuación el primero que coincida con la búsqueda se utiliza para representar al cliente.

Se aplica a