SpnEndpointIdentity Klass

Definition

Representerar ett namn på tjänstens huvudnamn (SPN) för en identitet när bindningen använder Kerberos.

public ref class SpnEndpointIdentity : System::ServiceModel::EndpointIdentity
public class SpnEndpointIdentity : System.ServiceModel.EndpointIdentity
type SpnEndpointIdentity = class
    inherit EndpointIdentity
Public Class SpnEndpointIdentity
Inherits EndpointIdentity
Arv
SpnEndpointIdentity

Exempel

Följande kod visar ett vanligt sätt att skapa en instans av den här klassen.

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

Kommentarer

Ett SPN är det namn som en klient unikt identifierar en instans av en tjänst med. Om du installerar flera instanser av en tjänst på datorer i en skog måste varje instans ha ett eget SPN. En viss tjänstinstans kan ha flera SPN om det finns flera namn som klienter kan använda för autentisering.

När en klient vill ansluta till en tjänst letar den upp en instans av tjänsten, skapar ett SPN för den instansen och anger identiteten till en SpnEndpointIdentity. En kontroll görs av att meddelandet är avsett för den tjänsten.

De tre autentiseringslägen som används under Kerberos är:

  • SSPINegotiate

  • Kerberos

  • KerberosOverTransport.

Konstruktorer

Name Description
SpnEndpointIdentity(Claim)

Initierar en ny instans av SpnEndpointIdentity med det angivna identitetsanspråket.

SpnEndpointIdentity(String)

Initierar en ny instans av SpnEndpointIdentity med det angivna tjänstens huvudnamn (SPN).

Egenskaper

Name Description
IdentityClaim

Hämtar identitetsanspråket som motsvarar identiteten.

(Ärvd från EndpointIdentity)
SpnLookupTime

Anger den maximala tid som tillåts för att söka efter tjänstens huvudnamn (SPN).

Metoder

Name Description
Equals(Object)

Returnerar ett värde som avgör om ett angivet objekt är lika med det aktuella identitetsobjektet eller om de har samma säkerhetsegenskaper.

(Ärvd från EndpointIdentity)
GetHashCode()

Tillhandahåller en hash-kod för den aktuella instansen av identiteten.

(Ärvd från EndpointIdentity)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
Initialize(Claim, IEqualityComparer<Claim>)

Initierar ett EndpointIdentity med det angivna anspråket och ett gränssnitt och jämför likhet.

(Ärvd från EndpointIdentity)
Initialize(Claim)

Initierar ett EndpointIdentity med det angivna anspråket.

(Ärvd från EndpointIdentity)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar identiteten.

(Ärvd från EndpointIdentity)

Gäller för