SpnEndpointIdentity Klasse

Definition

Stellt einen Dienstprinzipalnamen (Service Principal Name, SPN) für eine Identität dar, wenn die Bindung Kerberos verwendet.Represents a service principal name (SPN) for an identity when the binding uses Kerberos.

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.The following code shows one common way to create an instance of this class.

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.An SPN is the name by which a client uniquely identifies an instance of a service. Wenn Sie mehrere Instanzen eines Diensts auf Computern innerhalb einer Gesamtstruktur installieren, muss jede Instanz über einen eigenen SPN verfügen.If you install multiple instances of a service on computers throughout a forest, each instance must have its own SPN. Eine Dienstinstanz kann mehrere SPNs aufweisen, falls mehrere Namen vorhanden sind, die von den Clients zur Authentifizierung verwendet werden können.A given service instance can have multiple SPNs if there are multiple names that clients might use for authentication.

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.When a client wants to connect to a service, it locates an instance of the service, composes an SPN for that instance, and sets the identity to a SpnEndpointIdentity. Es wird geprüft, ob die Nachricht für diesen Dienst bestimmt ist.A check will be made that the message is intended for that service.

Die drei unter Kerberos verwendeten Authentifizierungsmodi sind:The three authentication modes used under Kerberos are:

  • SSPINegotiateSSPINegotiate

  • KerberosKerberos

  • KerberosOverTransport.KerberosOverTransport.

Konstruktoren

SpnEndpointIdentity(Claim)

Initialisiert eine neue Instanz von SpnEndpointIdentity mit dem angegebenen Identitätsanspruch.Initializes a new instance of SpnEndpointIdentity with the specified identity claim.

SpnEndpointIdentity(String)

Initialisiert eine neue Instanz von SpnEndpointIdentity mit dem angegebenen Dienstprinzipalnamen (SPN).Initializes a new instance of SpnEndpointIdentity with the specified service principal name (SPN).

Eigenschaften

IdentityClaim

Ruft den Identitätsanspruch ab, der der Identität entspricht.Gets the identity claim that corresponds to the identity.

(Geerbt von EndpointIdentity)
SpnLookupTime

Gibt die maximale Zeitspanne an, in der nach dem Dienstprinzipalnamen (SPN) gesucht werden kann.Specifies the maximum time allowed to look up the service principal name (SPN).

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.Returns a value that determines whether a specified object is equal to the current identity object or if they have equal security properties.

(Geerbt von EndpointIdentity)
GetHashCode()

Gibt einen Hashcode für die aktuelle Instanz der Identität zurück.Provides a hash code for the current instance of the identity.

(Geerbt von EndpointIdentity)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
Initialize(Claim)

Initialisiert eine EndpointIdentity mit dem angegebenen Anspruch.Initializes an EndpointIdentity with the specified claim.

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

Initialisiert eine EndpointIdentity mit dem angegebenen Anspruch und einer Schnittstelle und vergleicht die Gleichheit.Initializes an EndpointIdentity with the specified claim and an interface and compares equality.

(Geerbt von EndpointIdentity)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt die Identität zurück.Returns the identity.

(Geerbt von EndpointIdentity)

Gilt für: