Compartir a través de


SpnEndpointIdentity Clase

Definición

Representa un nombre entidad de seguridad (SPN) para una identidad cuando el enlace utiliza Kerberos.

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

Ejemplos

El código siguiente muestra una manera común de crear una instancia de esta clase.

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

Comentarios

SPN es el nombre por el que un cliente identifica de manera unívoca una instancia de un servicio. Si instala varias instancias de un servicio en equipos a lo largo de un bosque, cada instancia debe tener su propio SPN. Una instancia de servicio determinada puede tener varios SPN si hay varios nombres que los clientes pueden usar para la autenticación.

Cuando un cliente desea conectarse a un servicio, busca una instancia del servicio, crea un SPN para esa instancia y establece la identidad en SpnEndpointIdentity. Se comprobará si el mensaje es para ese servicio.

Los tres modos de autenticación utilizados con Kerberos son:

  • SSPINegotiate

  • Kerberos

  • KerberosOverTransport

Constructores

SpnEndpointIdentity(Claim)

Inicializa una nueva instancia de SpnEndpointIdentity con la notificación de identidad especificada.

SpnEndpointIdentity(String)

Inicializa una nueva instancia de SpnEndpointIdentity con el nombre de entidad de seguridad de servicio especificado (SPN).

Propiedades

IdentityClaim

Obtiene la notificación de identidad que corresponde a la identidad.

(Heredado de EndpointIdentity)
SpnLookupTime

Especifica la hora máxima permitida para buscar el nombre de entidad de seguridad de servicio (SPN).

Métodos

Equals(Object)

Devuelve un valor que determina si un objeto especificado equivale al objeto de identidad actual o si tienen propiedades de seguridad equivalentes.

(Heredado de EndpointIdentity)
GetHashCode()

Proporciona un código hash para la instancia actual de la identidad.

(Heredado de EndpointIdentity)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
Initialize(Claim)

Inicializa una EndpointIdentity con la notificación especificada.

(Heredado de EndpointIdentity)
Initialize(Claim, IEqualityComparer<Claim>)

Inicializa una EndpointIdentity con la notificación especificada y una interfaz y compara la igualdad.

(Heredado de EndpointIdentity)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve la identidad.

(Heredado de EndpointIdentity)

Se aplica a