SpnEndpointIdentity Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa um nome principal de serviço (SPN) para uma identidade quando a ligaçã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 seguinte mostra uma forma comum de criar uma instância desta 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
Observações
Um SPN é o nome pelo qual um cliente identifica exclusivamente uma instância de um serviço. Se instalar múltiplas instâncias de um serviço em computadores ao longo de uma floresta, cada instância deve ter o seu próprio SPN. Uma dada instância de serviço pode ter múltiplos SPNs se existirem vários nomes que os clientes possam usar para autenticação.
Quando um cliente quer ligar-se a um serviço, localiza uma instância do serviço, compõe um SPN para essa instância e define a identidade para um SpnEndpointIdentity. Será feita uma verificação para garantir que a mensagem é destinada a esse serviço.
Os três modos de autenticação usados sob o Kerberos são:
SSPINegotiate
Kerberos
KerberosOverTransport.
Construtores
| Name | Description |
|---|---|
| SpnEndpointIdentity(Claim) |
Inicializa uma nova instância de SpnEndpointIdentity com a reivindicação de identidade especificada. |
| SpnEndpointIdentity(String) |
Inicializa uma nova instância de SpnEndpointIdentity com o nome principal de serviço (SPN) especificado. |
Propriedades
| Name | Description |
|---|---|
| IdentityClaim |
Obtém a reivindicação de identidade que corresponde à identidade. (Herdado de EndpointIdentity) |
| SpnLookupTime |
Especifica o tempo máximo permitido para consultar o nome do principal do serviço (SPN). |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Devolve um valor que determina se um objeto especificado é igual ao objeto identidade atual ou se têm propriedades de segurança iguais. (Herdado de EndpointIdentity) |
| GetHashCode() |
Fornece um código de 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, IEqualityComparer<Claim>) |
Inicializa um EndpointIdentity com a reivindicação especificada e uma interface e compara a igualdade. (Herdado de EndpointIdentity) |
| Initialize(Claim) |
Inicializa um EndpointIdentity com a reivindicação especificada. (Herdado de EndpointIdentity) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve a identidade. (Herdado de EndpointIdentity) |