SpnEndpointIdentity Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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) |