SpnEndpointIdentity Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
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) |