SpnEndpointIdentity Třída

Definice

Představuje hlavní název služby (SPN) pro identitu, když vazba používá Protokol Kerberos.

public ref class SpnEndpointIdentity : System::ServiceModel::EndpointIdentity
public class SpnEndpointIdentity : System.ServiceModel.EndpointIdentity
type SpnEndpointIdentity = class
    inherit EndpointIdentity
Public Class SpnEndpointIdentity
Inherits EndpointIdentity
Dědičnost
SpnEndpointIdentity

Příklady

Následující kód ukazuje jeden běžný způsob vytvoření instance této třídy.

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

Poznámky

Hlavní název služby je název, kterým klient jednoznačně identifikuje instanci služby. Pokud na počítačích v doménové struktuře nainstalujete více instancí služby, musí mít každá instance vlastní hlavní název služby (SPN). Daná instance služby může mít více hlavních názvů služeb, pokud existuje více názvů, které klienti můžou použít k ověřování.

Když se klient chce připojit ke službě, vyhledá instanci služby, vytvoří hlavní název služby pro danou instanci a nastaví identitu na SpnEndpointIdentity. Zkontroluje se, že zpráva je určená pro danou službu.

Tři režimy ověřování používané v protokolu Kerberos jsou:

  • SSPINegotiate

  • Kerberos

  • KerberosOverTransport.

Konstruktory

SpnEndpointIdentity(Claim)

Inicializuje novou instanci SpnEndpointIdentity se zadanou deklarací identity.

SpnEndpointIdentity(String)

Inicializuje novou instanci SpnEndpointIdentity se zadaným hlavním názvem služby (SPN).

Vlastnosti

IdentityClaim

Získá deklaraci identity, která odpovídá identitě.

(Zděděno od EndpointIdentity)
SpnLookupTime

Určuje maximální dobu povolenou vyhledání hlavního názvu služby (SPN).

Metody

Equals(Object)

Vrátí hodnotu, která určuje, zda se zadaný objekt rovná aktuálnímu objektu identity, nebo pokud mají stejné vlastnosti zabezpečení.

(Zděděno od EndpointIdentity)
GetHashCode()

Poskytuje kód hash pro aktuální instanci identity.

(Zděděno od EndpointIdentity)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
Initialize(Claim)

Inicializuje se zadanou EndpointIdentity deklarací identity.

(Zděděno od EndpointIdentity)
Initialize(Claim, IEqualityComparer<Claim>)

Inicializuje se zadanou EndpointIdentity deklarací identity a rozhraním a porovná rovnost.

(Zděděno od EndpointIdentity)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí identitu.

(Zděděno od EndpointIdentity)

Platí pro