SpnEndpointIdentity Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje hlavní název služby (SPN) pro identitu, když vazba používá Protokol Kerberos.
public ref class SpnEndpointIdentity : System::ServiceModel::EndpointIdentity
public class SpnEndpointIdentity : System.ServiceModel.EndpointIdentity
type SpnEndpointIdentity = class
inherit EndpointIdentity
Public Class SpnEndpointIdentity
Inherits EndpointIdentity
- Dědičnost
Příklady
Následující kód ukazuje jeden běžný způsob vytvoření instance této třídy.
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
Poznámky
Hlavní název služby je název, kterým klient jednoznačně identifikuje instanci služby. Pokud na počítačích v doménové struktuře nainstalujete více instancí služby, musí mít každá instance vlastní hlavní název služby (SPN). Daná instance služby může mít více hlavních názvů služeb, pokud existuje více názvů, které klienti můžou použít k ověřování.
Když se klient chce připojit ke službě, vyhledá instanci služby, vytvoří hlavní název služby pro danou instanci a nastaví identitu na SpnEndpointIdentity. Zkontroluje se, že zpráva je určená pro danou službu.
Tři režimy ověřování používané v protokolu Kerberos jsou:
SSPINegotiate
Kerberos
KerberosOverTransport.
Konstruktory
SpnEndpointIdentity(Claim) |
Inicializuje novou instanci SpnEndpointIdentity se zadanou deklarací identity. |
SpnEndpointIdentity(String) |
Inicializuje novou instanci SpnEndpointIdentity se zadaným hlavním názvem služby (SPN). |
Vlastnosti
IdentityClaim |
Získá deklaraci identity, která odpovídá identitě. (Zděděno od EndpointIdentity) |
SpnLookupTime |
Určuje maximální dobu povolenou vyhledání hlavního názvu služby (SPN). |
Metody
Equals(Object) |
Vrátí hodnotu, která určuje, zda se zadaný objekt rovná aktuálnímu objektu identity, nebo pokud mají stejné vlastnosti zabezpečení. (Zděděno od EndpointIdentity) |
GetHashCode() |
Poskytuje kód hash pro aktuální instanci identity. (Zděděno od EndpointIdentity) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
Initialize(Claim) |
Inicializuje se zadanou EndpointIdentity deklarací identity. (Zděděno od EndpointIdentity) |
Initialize(Claim, IEqualityComparer<Claim>) |
Inicializuje se zadanou EndpointIdentity deklarací identity a rozhraním a porovná rovnost. (Zděděno od EndpointIdentity) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
ToString() |
Vrátí identitu. (Zděděno od EndpointIdentity) |