Freigeben über


X509CertificateRecipientServiceCredential.SetCertificate Methode

Definition

Gibt das Zertifikat an, mit dem der Dienst dargestellt wird.

Überlädt

SetCertificate(String)

Gibt das Zertifikat an, das zum Darstellen des Diensts durch Angabe des definierten Betreffnamens verwendet wird.

SetCertificate(String, StoreLocation, StoreName)

Gibt das Zertifikat an, das zum Darstellen des Diensts durch Angabe des definierten Betreffnamens, Zertifikatspeichernamens und Speicherpfads verwendet wird.

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Gibt das Zertifikat für die Darstellung des Diensts durch Angabe von Abfrageparametern wie storeLocation, storeName, findType und findValue an.

SetCertificate(String)

Gibt das Zertifikat an, das zum Darstellen des Diensts durch Angabe des definierten Betreffnamens verwendet 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

Definierter Betreffname.

Beispiele

Der folgende Code zeigt, wie diese Methode verwendet wird, um ein Zertifikat für Dienstanmeldeinformationen anhand eines Betreffnamens 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 über den subjectName-Parameter finden Sie unter SubjectName.

Gilt für

SetCertificate(String, StoreLocation, StoreName)

Gibt das Zertifikat an, das zum Darstellen des Diensts durch Angabe des definierten Betreffnamens, Zertifikatspeichernamens und Speicherpfads verwendet wird.

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

Definierter Betreffname.

storeLocation
StoreLocation

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

storeName
StoreName

Gibt den Namen des X.509-Zertifikatsspeichers an, der geöffnet werden soll.

Beispiele

Der folgende Code zeigt, wie diese Methode verwendet wird, um ein Zertifikat für 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 über den subjectName-Parameter finden Sie unter SubjectName.

Werte für storeLocation sind in der StoreLocation-Enumeration enthalten:

  • LocalMachine: Der dem lokalen Computer zugewiesene Zertifikatsspeicher (Standardeinstellung).

  • CurrentUser: Der vom aktuellen Benutzer verwendete Zertifikatsspeicher.

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

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

Gilt für

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Gibt das Zertifikat für die Darstellung des Diensts durch Angabe von Abfrageparametern wie storeLocation, storeName, findType und findValue an.

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 verwendet, um das Clientzertifikat zu erhalten.

storeName
StoreName

Gibt den Namen des X.509-Zertifikatsspeichers an, der geöffnet werden soll.

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 diese Methode verwendet wird, um ein Zertifikat für 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 sind in der StoreLocation-Enumeration enthalten:

  • LocalMachine: Der dem lokalen Computer zugewiesene Zertifikatsspeicher (Standardeinstellung).

  • CurrentUser: Der vom aktuellen Benutzer verwendete Zertifikatsspeicher.

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

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

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

Die am häufigsten verwendete Enumeration ist FindBySubjectName, die eine Suche in den Betreffnamen der Zertifikate im angegebenen Speicher durchführt, wobei zwischen Groß- und Kleinschreibung unterschieden wird. Dies kann eine ungenaue Suche sein. Wenn mehr als ein Zertifikat zurückgegeben wird, wird das erste mit der Suche übereinstimmende Zertifikat für die Darstellung des Clients verwendet.

Gilt für