SpnEndpointIdentity Classe

Definizione

Rappresenta un nome dell'entità servizio (SPN) per un'identità quando l'associazione usa Kerberos.

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

Esempio

Il codice seguente illustra un modo comune per creare un'istanza di questa classe.

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

Commenti

Un SPN è il nome in base al quale un client identifica in modo univoco un'istanza di un servizio. Se si installano più istanze di un servizio in computer in una foresta, ogni istanza deve avere un nome SPN specifico. Una determinata istanza del servizio può avere più nomi SPN se sono presenti più nomi che i client possono usare per l'autenticazione.

Quando un client vuole connettersi a un servizio, individua un'istanza del servizio, compone un nome SPN per tale istanza e imposta l'identità su un SpnEndpointIdentityoggetto . Verrà eseguito un controllo che indica che il messaggio è destinato a tale servizio.

Le tre modalità di autenticazione usate in Kerberos sono:

  • SSPINegotiate

  • Kerberos

  • KerberosOverTransport.

Costruttori

Nome Descrizione
SpnEndpointIdentity(Claim)

Inizializza una nuova istanza di SpnEndpointIdentity con l'attestazione identity specificata.

SpnEndpointIdentity(String)

Inizializza una nuova istanza di SpnEndpointIdentity con il nome dell'entità servizio (SPN) specificato.

Proprietà

Nome Descrizione
IdentityClaim

Ottiene l'attestazione di identità che corrisponde all'identità.

(Ereditato da EndpointIdentity)
SpnLookupTime

Specifica il tempo massimo consentito per cercare il nome dell'entità servizio (SPN).

Metodi

Nome Descrizione
Equals(Object)

Restituisce un valore che determina se un oggetto specificato è uguale all'oggetto Identity corrente o se hanno proprietà di sicurezza uguali.

(Ereditato da EndpointIdentity)
GetHashCode()

Fornisce un codice hash per l'istanza corrente dell'identità.

(Ereditato da EndpointIdentity)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
Initialize(Claim, IEqualityComparer<Claim>)

Inizializza un oggetto EndpointIdentity con l'attestazione specificata e un'interfaccia e confronta l'uguaglianza.

(Ereditato da EndpointIdentity)
Initialize(Claim)

Inizializza un oggetto EndpointIdentity con l'attestazione specificata.

(Ereditato da EndpointIdentity)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce l'identità.

(Ereditato da EndpointIdentity)

Si applica a