Freigeben über


SpnEndpointIdentity Klasse

Definition

Stellt einen Dienstprinzipalnamen (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

Im folgenden Code wird eine allgemeine Möglichkeit veranschaulicht, eine Instanz dieser Klasse zu erstellen.

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 innerhalb einer Gesamtstruktur installieren, muss jede Instanz über einen eigenen SPN verfügen. Eine Dienstinstanz kann mehrere SPNs aufweisen, falls mehrere Namen vorhanden sind, die von den Clients zur Authentifizierung verwendet werden können.

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

Die drei unter Kerberos verwendeten Authentifizierungsmodi sind:

  • SSPINegotiate

  • Kerberos

  • KerberosOverTransport.

Konstruktoren

SpnEndpointIdentity(Claim)

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

SpnEndpointIdentity(String)

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

Eigenschaften

IdentityClaim

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

(Geerbt von EndpointIdentity)
SpnLookupTime

Gibt die maximale Zeitspanne an, in der nach dem Dienstprinzipalnamen (SPN) gesucht werden kann.

Methoden

Equals(Object)

Gibt einen Wert zurück, der bestimmt, ob ein angegebenes Objekt gleich dem aktuellen Identitätsobjekt ist, oder ob sie über gleiche Sicherheitseinstellungen verfügen.

(Geerbt von EndpointIdentity)
GetHashCode()

Gibt einen Hashcode für die aktuelle Instanz der Identität zurück.

(Geerbt von EndpointIdentity)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
Initialize(Claim)

Initialisiert eine EndpointIdentity mit dem angegebenen Anspruch.

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

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

(Geerbt von EndpointIdentity)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt die Identität zurück.

(Geerbt von EndpointIdentity)

Gilt für: