SpnEndpointIdentity Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um SPN (nome da entidade de serviço) para uma identidade quando a associação 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
- Herança
Exemplos
O código a seguir mostra uma maneira comum de criar uma instância dessa 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
Comentários
Um SPN é o nome pelo qual um cliente identifica exclusivamente uma instância de um serviço. Se você instalar várias instâncias de um serviço em computadores em toda uma floresta, cada instância deverá ter seu próprio SPN. Uma determinada instância de serviço poderá ter vários SPNs se houver vários nomes que os clientes podem usar para autenticação.
Quando um cliente deseja se conectar a um serviço, ele localiza uma instância do serviço, compõe um SPN para essa instância e define a identidade como um SpnEndpointIdentity. Será feita uma verificação de que a mensagem se destina a esse serviço.
Os três modos de autenticação usados em Kerberos são:
SSPINegotiate
Kerberos
KerberosOverTransport.
Construtores
SpnEndpointIdentity(Claim) |
Inicializa uma nova instância de SpnEndpointIdentity com a declaração de identidade especificada. |
SpnEndpointIdentity(String) |
Inicializa uma nova instância de SpnEndpointIdentity com o SPN (nome da entidade de serviço) especificado. |
Propriedades
IdentityClaim |
Obtém a declaração de identidade que corresponde à identidade. (Herdado de EndpointIdentity) |
SpnLookupTime |
Especifica o tempo máximo permitido para pesquisar o SPN (nome da entidade de serviço) especificado. |
Métodos
Equals(Object) |
Retorna um valor que determina se um objeto especificado é igual ao objeto de identidade atual ou se eles têm propriedades de segurança iguais. (Herdado de EndpointIdentity) |
GetHashCode() |
Fornece um código hash para a instância atual da identidade. (Herdado de EndpointIdentity) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
Initialize(Claim) |
Inicializa um EndpointIdentity com a declaração especificada. (Herdado de EndpointIdentity) |
Initialize(Claim, IEqualityComparer<Claim>) |
Inicializa um EndpointIdentity com a declaração especificada e uma interface e compara a igualdade entre elas. (Herdado de EndpointIdentity) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna a identidade. (Herdado de EndpointIdentity) |