SpnEndpointIdentity Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
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) |