SpnEndpointIdentity Classe
Definição
Representa um SPN (nome da entidade de serviço) para uma identidade quando a associação usa Kerberos.Represents a service principal name (SPN) for an identity when the binding uses 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.The following code shows one common way to create an instance of this class.
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.An SPN is the name by which a client uniquely identifies an instance of a service. Se você instalar várias instâncias de um serviço em computadores em uma floresta, cada instância deverá ter seu próprio SPN.If you install multiple instances of a service on computers throughout a forest, each instance must have its own SPN. Uma determinada instância de serviço pode ter vários SPNs se houver vários nomes que os clientes podem usar para autenticação.A given service instance can have multiple SPNs if there are multiple names that clients might use for authentication.
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 .When a client wants to connect to a service, it locates an instance of the service, composes an SPN for that instance, and sets the identity to a SpnEndpointIdentity. Será feita uma verificação de que a mensagem é destinada a esse serviço.A check will be made that the message is intended for that service.
Os três modos de autenticação usados em Kerberos são:The three authentication modes used under Kerberos are:
SSPINegotiateSSPINegotiate
KerberosKerberos
KerberosOverTransport.KerberosOverTransport.
Construtores
| SpnEndpointIdentity(Claim) |
Inicializa uma nova instância de SpnEndpointIdentity com a declaração de identidade especificada.Initializes a new instance of SpnEndpointIdentity with the specified identity claim. |
| SpnEndpointIdentity(String) |
Inicializa uma nova instância de SpnEndpointIdentity com o SPN (nome da entidade de serviço) especificado.Initializes a new instance of SpnEndpointIdentity with the specified service principal name (SPN). |
Propriedades
| IdentityClaim |
Obtém a declaração de identidade que corresponde à identidade.Gets the identity claim that corresponds to the identity. (Herdado de EndpointIdentity) |
| SpnLookupTime |
Especifica o tempo máximo permitido para pesquisar o SPN (nome da entidade de serviço) especificado.Specifies the maximum time allowed to look up the service principal name (SPN). |
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.Returns a value that determines whether a specified object is equal to the current identity object or if they have equal security properties. (Herdado de EndpointIdentity) |
| GetHashCode() |
Fornece um código hash para a instância atual da identidade.Provides a hash code for the current instance of the identity. (Herdado de EndpointIdentity) |
| GetType() |
Obtém o Type da instância atual.Gets the Type of the current instance. (Herdado de Object) |
| Initialize(Claim) |
Inicializa um EndpointIdentity com a declaração especificada.Initializes an EndpointIdentity with the specified claim. (Herdado de EndpointIdentity) |
| Initialize(Claim, IEqualityComparer<Claim>) |
Inicializa um EndpointIdentity com a declaração especificada e uma interface e compara a igualdade entre elas.Initializes an EndpointIdentity with the specified claim and an interface and compares equality. (Herdado de EndpointIdentity) |
| MemberwiseClone() |
Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object. (Herdado de Object) |
| ToString() |
Retorna a identidade.Returns the identity. (Herdado de EndpointIdentity) |