SpnEndpointIdentity Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een SPN (Service Principal Name) voor een identiteit wanneer de binding Kerberos gebruikt.
public ref class SpnEndpointIdentity : System::ServiceModel::EndpointIdentity
public class SpnEndpointIdentity : System.ServiceModel.EndpointIdentity
type SpnEndpointIdentity = class
inherit EndpointIdentity
Public Class SpnEndpointIdentity
Inherits EndpointIdentity
- Overname
Voorbeelden
In de volgende code ziet u een veelvoorkomende manier om een exemplaar van deze klasse te maken.
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
Opmerkingen
Een SPN is de naam waarmee een client een exemplaar van een service uniek identificeert. Als u meerdere exemplaren van een service installeert op computers in een forest, moet elk exemplaar een eigen SPN hebben. Een bepaald service-exemplaar kan meerdere SPN's hebben als er meerdere namen zijn die clients kunnen gebruiken voor verificatie.
Wanneer een client verbinding wil maken met een service, wordt een exemplaar van de service gevonden, wordt een SPN voor dat exemplaar samengesteld en wordt de identiteit ingesteld op een SpnEndpointIdentity. Er wordt gecontroleerd of het bericht is bedoeld voor die service.
De drie verificatiemodi die worden gebruikt onder Kerberos zijn:
SSPINegotiate
Kerberos
KerberosOverTransport.
Constructors
| Name | Description |
|---|---|
| SpnEndpointIdentity(Claim) |
Initialiseert een nieuw exemplaar van SpnEndpointIdentity met de opgegeven identiteitsclaim. |
| SpnEndpointIdentity(String) |
Initialiseert een nieuw exemplaar van SpnEndpointIdentity met de opgegeven SPN (Service Principal Name). |
Eigenschappen
| Name | Description |
|---|---|
| IdentityClaim |
Hiermee haalt u de identiteitsclaim op die overeenkomt met de identiteit. (Overgenomen van EndpointIdentity) |
| SpnLookupTime |
Hiermee geeft u de maximale tijd die is toegestaan om de SPN (Service Principal Name) op te zoeken. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Retourneert een waarde die bepaalt of een opgegeven object gelijk is aan het huidige identiteitsobject of dat deze dezelfde beveiligingseigenschappen hebben. (Overgenomen van EndpointIdentity) |
| GetHashCode() |
Biedt een hash-code voor het huidige exemplaar van de identiteit. (Overgenomen van EndpointIdentity) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| Initialize(Claim, IEqualityComparer<Claim>) |
Initialiseert een EndpointIdentity met de opgegeven claim en een interface en vergelijkt gelijkheid. (Overgenomen van EndpointIdentity) |
| Initialize(Claim) |
Initialiseert een EndpointIdentity met de opgegeven claim. (Overgenomen van EndpointIdentity) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert de identiteit. (Overgenomen van EndpointIdentity) |