Udostępnij za pośrednictwem


X509CertificateRecipientServiceCredential.SetCertificate Metoda

Definicja

Określa certyfikat, który ma być używany do reprezentowania usługi.

Przeciążenia

SetCertificate(String)

Określa certyfikat, który ma być używany do reprezentowania usługi, określając nazwę wyróżniającą podmiotu.

SetCertificate(String, StoreLocation, StoreName)

Określa certyfikat, który ma być używany do reprezentowania usługi, określając nazwę wyróżniającą podmiotu, nazwę magazynu certyfikatów i lokalizację magazynu.

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Określa certyfikat, który ma być używany do reprezentowania usługi, określając parametry zapytania, takie jak storeLocation, storeNamei findType findValue.

SetCertificate(String)

Określa certyfikat, który ma być używany do reprezentowania usługi, określając nazwę wyróżniającą podmiotu.

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

Parametry

subjectName
String

Nazwa wyróżniająca podmiotu.

Przykłady

Poniższy kod pokazuje, jak za pomocą tej metody ustawić certyfikat dla poświadczeń usługi z nazwy podmiotu.

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

Uwagi

Aby uzyskać więcej informacji na temat parametru subjectName , zobacz SubjectName.

Dotyczy

SetCertificate(String, StoreLocation, StoreName)

Określa certyfikat, który ma być używany do reprezentowania usługi, określając nazwę wyróżniającą podmiotu, nazwę magazynu certyfikatów i lokalizację magazynu.

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)

Parametry

subjectName
String

Nazwa wyróżniająca podmiotu.

storeLocation
StoreLocation

Lokalizacja magazynu certyfikatów używana przez usługę do uzyskania certyfikatu usługi.

storeName
StoreName

Określa nazwę magazynu certyfikatów X.509 do otwarcia.

Przykłady

Poniższy kod pokazuje, jak za pomocą tej metody ustawić certyfikat dla poświadczeń usługi.

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

Uwagi

Aby uzyskać więcej informacji na temat parametru subjectName , zobacz SubjectName.

Wartości dla storeLocation są uwzględniane w wyliczeniem StoreLocation :

  • LocalMachine: magazyn certyfikatów przypisany do komputera lokalnego (wartość domyślna).

  • CurrentUser: magazyn certyfikatów używany przez bieżącego użytkownika.

Jeśli aplikacja kliencka jest uruchomiona na koncie systemowym, certyfikat jest zazwyczaj w LocalMachinesystemie . Jeśli aplikacja kliencka jest uruchomiona na koncie użytkownika, certyfikat jest zazwyczaj w elemecie CurrentUser.

Wartości dla storeName są uwzględniane w wyliczeniem StoreName .

Dotyczy

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Określa certyfikat, który ma być używany do reprezentowania usługi, określając parametry zapytania, takie jak storeLocation, storeNamei findType 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)

Parametry

storeLocation
StoreLocation

Lokalizacja magazynu certyfikatów używanego przez klienta do uzyskania certyfikatu klienta.

storeName
StoreName

Określa nazwę magazynu certyfikatów X.509 do otwarcia.

findType
X509FindType

Definiuje typ wyszukiwania X.509 do wykonania.

findValue
Object

Wartość do wyszukania w magazynie certyfikatów X.509.

Przykłady

Poniższy kod pokazuje, jak za pomocą tej metody ustawić certyfikat dla poświadczeń usługi.

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

Uwagi

Wartości dla storeLocation są uwzględniane w wyliczeniem StoreLocation :

  • LocalMachine: magazyn certyfikatów przypisany do komputera lokalnego (wartość domyślna).

  • CurrentUser: magazyn certyfikatów używany przez bieżącego użytkownika.

Jeśli aplikacja kliencka jest uruchomiona na koncie systemowym, certyfikat jest zazwyczaj w LocalMachinesystemie . Jeśli aplikacja kliencka jest uruchomiona na koncie użytkownika, certyfikat jest zazwyczaj w elemecie CurrentUser.

Wartości dla storeName są uwzględniane w wyliczeniem StoreName .

Wartości dla findType są uwzględniane w wyliczeniem X509FindType .

Najczęściej używane wyliczenie to FindBySubjectName, co umożliwia wyszukiwanie bez uwzględniania wielkości liter w nazwie podmiotu certyfikatów w określonym magazynie. Może to być nieprecyzyjne wyszukiwanie. Jeśli zwracany jest więcej niż jeden certyfikat, pierwszy pasujący do znajdowania jest używany do reprezentowania klienta.

Dotyczy