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 с указанным именем субъекта-службы (SPN).

Свойства

Имя Описание
IdentityClaim

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

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

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

Методы

Имя Описание
Equals(Object)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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