Condividi tramite


SpnEndpointIdentity Classe

Definizione

Rappresenta un nome principale di servizio (SPN) di 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

Nell'esempio di codice seguente viene mostrato un unico 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 distribuiti in una foresta, a ogni istanza deve essere associato un nome SPN distinto. Se i client possono usare più nomi per l'autenticazione, una determinata istanza di servizio può presentare più SPN.

Per connettersi a un servizio, il client individua anzitutto un'istanza del servizio, quindi compone un SPN per tale istanza e infine imposta l'identità su un oggetto SpnEndpointIdentity. Il sistema verifica che il messaggio sia destinato a tale servizio.

Le tre modalità di autenticazione utilizzate in Kerberos sono:

  • SSPINegotiate

  • Kerberos

  • KerberosOverTransport.

Costruttori

SpnEndpointIdentity(Claim)

Consente di inizializzare una nuova istanza della classe SpnEndpointIdentity con la richiesta di identità specificata.

SpnEndpointIdentity(String)

Consente di inizializzare una nuova istanza della classe SpnEndpointIdentity con il nome SPN specificato.

Proprietà

IdentityClaim

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

(Ereditato da EndpointIdentity)
SpnLookupTime

Consente di specificare l'intervallo di tempo massimo consentito per ricercare il nome SPN.

Metodi

Equals(Object)

Restituisce un valore che determina se un oggetto specificato corrisponde all'oggetto Identity corrente o se tali oggetti contengono le stesse proprietà di sicurezza.

(Ereditato da EndpointIdentity)
GetHashCode()

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

(Ereditato da EndpointIdentity)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
Initialize(Claim)

Inizializza una classe EndpointIdentity con l'attestazione specificata.

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

Inizializza una classe EndpointIdentity con l'attestazione e l'interfaccia specificate ed esegue il confronto per verificarne l'uguaglianza.

(Ereditato da EndpointIdentity)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce l'identità.

(Ereditato da EndpointIdentity)

Si applica a