SpnEndpointIdentity Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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) |