SpnEndpointIdentity Klasse

Definition

Stellt einen Dienstprinzipalnamen (SERVICE Principal Name, SPN) für eine Identität dar, wenn die Bindung Kerberos verwendet.

public ref class SpnEndpointIdentity : System::ServiceModel::EndpointIdentity
public class SpnEndpointIdentity : System.ServiceModel.EndpointIdentity
type SpnEndpointIdentity = class
    inherit EndpointIdentity
Public Class SpnEndpointIdentity
Inherits EndpointIdentity
Vererbung
SpnEndpointIdentity

Beispiele

Der folgende Code zeigt eine gängige Methode zum Erstellen einer Instanz dieser Klasse.

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

Hinweise

Ein SPN ist der Name, mit dem ein Client eine Instanz eines Diensts eindeutig identifizieren kann. Wenn Sie mehrere Instanzen eines Diensts auf Computern in einer Gesamtstruktur installieren, muss jede Instanz über einen eigenen SPN verfügen. Eine bestimmte Dienstinstanz kann mehrere SPNs aufweisen, wenn mehrere Namen vorhanden sind, die clients möglicherweise für die Authentifizierung verwenden.

Wenn ein Client eine Verbindung mit einem Dienst herstellen möchte, sucht er eine Instanz des Diensts, erstellt einen SPN für diese Instanz und legt die Identität auf eine SpnEndpointIdentity. Es wird überprüft, ob die Nachricht für diesen Dienst vorgesehen ist.

Die drei unter Kerberos verwendeten Authentifizierungsmodi lauten wie folgt:

  • SSPINegotiate

  • Kerberos

  • KerberosOverTransport.

Konstruktoren

Name Beschreibung
SpnEndpointIdentity(Claim)

Initialisiert eine neue Instanz mit SpnEndpointIdentity dem angegebenen Identitätsanspruch.

SpnEndpointIdentity(String)

Initialisiert eine neue Instanz mit SpnEndpointIdentity dem angegebenen Dienstprinzipalnamen (SPN).

Eigenschaften

Name Beschreibung
IdentityClaim

Ruft den Identitätsanspruch ab, der der Identität entspricht.

(Geerbt von EndpointIdentity)
SpnLookupTime

Gibt die maximal zulässige Zeit an, um den Dienstprinzipalnamen (Service Principal Name, SPN) nachzuschlagen.

Methoden

Name Beschreibung
Equals(Object)

Gibt einen Wert zurück, der bestimmt, ob ein angegebenes Objekt dem aktuellen Identitätsobjekt entspricht oder ob es gleiche Sicherheitseigenschaften gibt.

(Geerbt von EndpointIdentity)
GetHashCode()

Stellt einen Hashcode für die aktuelle Instanz der Identität bereit.

(Geerbt von EndpointIdentity)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
Initialize(Claim, IEqualityComparer<Claim>)

Initialisiert eine EndpointIdentity mit dem angegebenen Anspruch und einer Schnittstelle und vergleicht die Gleichheit.

(Geerbt von EndpointIdentity)
Initialize(Claim)

Initialisiert einen EndpointIdentity mit dem angegebenen Anspruch.

(Geerbt von EndpointIdentity)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt die Identität zurück.

(Geerbt von EndpointIdentity)

Gilt für: