X509CertificateRecipientServiceCredential.SetCertificate Метод

Определение

Задает сертификат, используемый для представления службы.

Перегрузки

SetCertificate(String)

Задает сертификат, используемый для представления службы, путем указания различающегося имени субъекта.

SetCertificate(String, StoreLocation, StoreName)

Задает сертификат, используемый для представления службы, путем указания различающегося имени субъекта, хранилища сертификатов и расположения хранилища сертификатов.

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Задает сертификат, используемый для представления службы, путем указания параметров запроса, например storeLocation, storeName, findType и findValue.

SetCertificate(String)

Задает сертификат, используемый для представления службы, путем указания различающегося имени субъекта.

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

Параметры

subjectName
String

Различающееся имя субъекта.

Примеры

В следующем примере кода показано, как с помощью этого метода задать сертификат для учетных данных службы на основе имени субъекта.

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

Комментарии

Дополнительные сведения о параметре subjectName см. в разделе SubjectName.

Применяется к

SetCertificate(String, StoreLocation, StoreName)

Задает сертификат, используемый для представления службы, путем указания различающегося имени субъекта, хранилища сертификатов и расположения хранилища сертификатов.

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)

Параметры

subjectName
String

Различающееся имя субъекта.

storeLocation
StoreLocation

Расположение хранилища сертификатов, из которого служба получает сертификат службы.

storeName
StoreName

Задает имя открываемого хранилища сертификатов X.509.

Примеры

В следующем примере кода показано, как с помощью этого метода задать сертификат для учетных данных службы.

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

Комментарии

Дополнительные сведения о параметре subjectName см. в разделе SubjectName.

Значения для параметра storeLocation включены в перечисление StoreLocation.

  • LocalMachine: хранилище сертификатов, назначенное локальному компьютеру (по умолчанию).

  • CurrentUser: хранилище сертификатов, используемое текущим пользователем.

Если клиентское приложение выполняется под учетной записью системы, то сертификат обычно находится в LocalMachine. Если клиентское приложение выполняется под учетной записью пользователя, то сертификат обычно находится в CurrentUser.

Значения для параметра storeName включены в перечисление StoreName.

Применяется к

SetCertificate(StoreLocation, StoreName, X509FindType, Object)

Задает сертификат, используемый для представления службы, путем указания параметров запроса, например storeLocation, storeName, 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)

Параметры

storeLocation
StoreLocation

Расположение хранилища сертификатов, из которого клиент получает сертификат клиента.

storeName
StoreName

Задает имя открываемого хранилища сертификатов X.509.

findType
X509FindType

Определяет тип поиска сертификата X.509.

findValue
Object

Значение для поиска в хранилище сертификатов X.509.

Примеры

В следующем примере кода показано, как с помощью этого метода задать сертификат для учетных данных службы.

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

Комментарии

Значения для параметра storeLocation включены в перечисление StoreLocation.

  • LocalMachine: хранилище сертификатов, назначенное локальному компьютеру (по умолчанию).

  • CurrentUser: хранилище сертификатов, используемое текущим пользователем.

Если клиентское приложение выполняется под учетной записью системы, то сертификат обычно находится в LocalMachine. Если клиентское приложение выполняется под учетной записью пользователя, то сертификат обычно находится в CurrentUser.

Значения для параметра storeName включены в перечисление StoreName.

Значения для параметра findType включены в перечисление X509FindType.

Наиболее часто используется перечисление FindBySubjectName, которое выполняет поиск с учетом регистра по имени субъекта сертификатов в указанном хранилище. Это может быть неточный поиск. При возврате нескольких сертификатов для представления клиента будет использоваться первый из них.

Применяется к