SpnEndpointIdentity Класс

Определение

Представляет имя субъекта-службы (SPN) для удостоверения, когда в привязке используется протокол Kerberos.

public ref class SpnEndpointIdentity : System::ServiceModel::EndpointIdentity
public class SpnEndpointIdentity : System.ServiceModel.EndpointIdentity
type SpnEndpointIdentity = class
    inherit EndpointIdentity
Public Class SpnEndpointIdentity
Inherits EndpointIdentity
Наследование
SpnEndpointIdentity

Примеры

В следующем примере кода показан один из способов создания экземпляра данного класса.

static EndpointIdentity CreateIdentity()
 {
     WindowsIdentity self = WindowsIdentity.GetCurrent();
     SecurityIdentifier sid = self.User;

     EndpointIdentity identity = null;

     if (sid.IsWellKnown(WellKnownSidType.LocalSystemSid) ||
         sid.IsWellKnown(WellKnownSidType.NetworkServiceSid) ||
         sid.IsWellKnown(WellKnownSidType.LocalServiceSid))
     {
         identity = EndpointIdentity.CreateSpnIdentity(
             string.Format(CultureInfo.InvariantCulture, "host/{0}", GetMachineName()));
     }
     else
     {
         // Need an UPN string here
         string domain = GetPrimaryDomain();
         if (domain != null)
         {
             string[] split = self.Name.Split('\\');
             if (split.Length == 2)
             {
                 identity = EndpointIdentity.CreateUpnIdentity(split[1] + "@" + domain);
             }
         }
     }

     return identity;
 }
Private Shared Function CreateIdentity() As EndpointIdentity
     Dim self As WindowsIdentity = WindowsIdentity.GetCurrent()
     Dim sid As SecurityIdentifier = self.User

     Dim identity As EndpointIdentity = Nothing

     If sid.IsWellKnown(WellKnownSidType.LocalSystemSid) OrElse sid.IsWellKnown(WellKnownSidType.NetworkServiceSid) OrElse sid.IsWellKnown(WellKnownSidType.LocalServiceSid) Then
         identity = EndpointIdentity.CreateSpnIdentity(String.Format(CultureInfo.InvariantCulture, "host/{0}", GetMachineName()))
     Else
         ' Need an UPN string here
         Dim domain As String = GetPrimaryDomain()
         If domain IsNot Nothing Then
             Dim split() As String = self.Name.Split("\"c)
             If split.Length = 2 Then
                 identity = EndpointIdentity.CreateUpnIdentity(split(1) & "@" & domain)
             End If
         End If
     End If

     Return identity
End Function

Комментарии

Имя участника-службы — это имя, по которому клиент однозначно идентифицирует экземпляр службы. Если на компьютерах в лесу установлено несколько экземпляров службы, то каждый экземпляр должен иметь свое имя участника-службы. Каждый экземпляр службы может иметь несколько имен участников-служб при наличии нескольких имен, которые могут использоваться клиентами для проверки подлинности.

Когда клиент хочет подключиться к службе, он выполняет поиск экземпляра службы, создает имя участника-службы для данного экземпляра и задает удостоверению тип SpnEndpointIdentity. Будет произведена проверка, предназначено ли сообщение для данной службы.

В протоколе Kerberos используются три режима проверки подлинности:

  • SSPINegotiate,

  • Kerberos

  • KerberosOverTransport.

Конструкторы

SpnEndpointIdentity(Claim)

Инициализирует новый экземпляр класса SpnEndpointIdentity в соответствии с указанным идентификационным утверждением.

SpnEndpointIdentity(String)

Инициализирует новый экземпляр класса SpnEndpointIdentity с заданным именем участника-службы.

Свойства

IdentityClaim

Возвращает идентификационное утверждение, соответствующее идентификации.

(Унаследовано от EndpointIdentity)
SpnLookupTime

Задает максимально допустимое время для поиска имени участника-службы.

Методы

Equals(Object)

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

(Унаследовано от EndpointIdentity)
GetHashCode()

Предоставляет хэш-код для текущего экземпляра удостоверения.

(Унаследовано от EndpointIdentity)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
Initialize(Claim)

Инициализирует EndpointIdentity с указанным утверждением.

(Унаследовано от EndpointIdentity)
Initialize(Claim, IEqualityComparer<Claim>)

Инициализирует EndpointIdentity с указанным утверждением и интерфейсом, а также проверяет равенство.

(Унаследовано от EndpointIdentity)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает удостоверение.

(Унаследовано от EndpointIdentity)

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