Freigeben über


X509CertificateRecipientServiceCredential.SetCertificate Methode

Definition

Gibt das Zertifikat an, das für die Darstellung des Diensts verwendet werden soll.

Überlädt

Name Beschreibung
SetCertificate(String)

Gibt das Zertifikat an, das für die Darstellung des Diensts verwendet werden soll, indem der Betreff distinguished Name angegeben wird.

SetCertificate(String, StoreLocation, StoreName)

Gibt das Zertifikat an, das für die Darstellung des Diensts verwendet werden soll, indem der Betreff distinguished Name, der Zertifikatspeichername und der Speicherort angegeben werden.

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Gibt das Zertifikat an, das für die Darstellung des Diensts verwendet werden soll, indem Abfrageparameter wie storeLocation, storeNameund findTypefindValue.

SetCertificate(String)

Gibt das Zertifikat an, das für die Darstellung des Diensts verwendet werden soll, indem der Betreff distinguished Name angegeben wird.

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

Parameter

subjectName
String

Betreff distinguished name.

Beispiele

Der folgende Code zeigt, wie Sie diese Methode verwenden, um ein Zertifikat für dienstanmeldeinformationen aus einem Antragstellernamen festzulegen.

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

Hinweise

Weitere Informationen zum subjectName Parameter finden Sie unter SubjectName.

Gilt für:

SetCertificate(String, StoreLocation, StoreName)

Gibt das Zertifikat an, das für die Darstellung des Diensts verwendet werden soll, indem der Betreff distinguished Name, der Zertifikatspeichername und der Speicherort angegeben werden.

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)

Parameter

subjectName
String

Betreff distinguished name.

storeLocation
StoreLocation

Der Speicherort des Zertifikatspeichers, den der Dienst zum Abrufen des Dienstzertifikats verwendet.

storeName
StoreName

Gibt den Namen des zu öffnenden X.509-Zertifikatspeichers an.

Beispiele

Der folgende Code zeigt, wie Sie diese Methode verwenden, um ein Zertifikat für eine Dienstanmeldeinformationen festzulegen.

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

Hinweise

Weitere Informationen zum subjectName Parameter finden Sie unter SubjectName.

Werte für storeLocation die Enumeration sind enthalten StoreLocation :

  • LocalMachine: der dem lokalen Computer zugewiesene Zertifikatspeicher (Standard).

  • CurrentUser: der vom aktuellen Benutzer verwendete Zertifikatspeicher.

Wenn die Clientanwendung unter einem Systemkonto ausgeführt wird, befindet sich das Zertifikat in der Regel in LocalMachine. Wenn die Clientanwendung unter einem Benutzerkonto ausgeführt wird, befindet sich das Zertifikat in der Regel in CurrentUser.

Die Werte für storeName diese sind in der StoreName Enumeration enthalten.

Gilt für:

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Gibt das Zertifikat an, das für die Darstellung des Diensts verwendet werden soll, indem Abfrageparameter wie storeLocation, storeNameund findTypefindValue.

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)

Parameter

storeLocation
StoreLocation

Der Speicherort des Zertifikatspeichers, den der Client zum Abrufen des Clientzertifikats verwendet.

storeName
StoreName

Gibt den Namen des zu öffnenden X.509-Zertifikatspeichers an.

findType
X509FindType

Definiert den Typ der X.509-Suche, die ausgeführt werden soll.

findValue
Object

Der Wert, nach dem im X.509-Zertifikatspeicher gesucht werden soll.

Beispiele

Der folgende Code zeigt, wie Sie diese Methode verwenden, um ein Zertifikat für eine Dienstanmeldeinformationen festzulegen.

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

Hinweise

Werte für storeLocation die Enumeration sind enthalten StoreLocation :

  • LocalMachine: der dem lokalen Computer zugewiesene Zertifikatspeicher (Standard).

  • CurrentUser: der vom aktuellen Benutzer verwendete Zertifikatspeicher.

Wenn die Clientanwendung unter einem Systemkonto ausgeführt wird, befindet sich das Zertifikat in der Regel in LocalMachine. Wenn die Clientanwendung unter einem Benutzerkonto ausgeführt wird, befindet sich das Zertifikat in der Regel in CurrentUser.

Die Werte für storeName diese sind in der StoreName Enumeration enthalten.

Die Werte für findType diese sind in der X509FindType Enumeration enthalten.

Die am häufigsten verwendete Aufzählung ist FindBySubjectName, bei der bei der Suche nach dem Antragstellernamen von Zertifikaten im angegebenen Speicher die Groß-/Kleinschreibung nicht beachtet wird. Dies kann eine ungenaue Suche sein. Wenn mehr als ein Zertifikat zurückgegeben wird, wird die erste, die der Suche entspricht, verwendet, um den Client darzustellen.

Gilt für: