SpnEndpointIdentity Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет имя субъекта-службы (SPN) для удостоверения, когда привязка использует Kerberos.
public ref class SpnEndpointIdentity : System::ServiceModel::EndpointIdentity
public class SpnEndpointIdentity : System.ServiceModel.EndpointIdentity
type SpnEndpointIdentity = class
inherit EndpointIdentity
Public Class SpnEndpointIdentity
Inherits EndpointIdentity
- Наследование
Примеры
В следующем коде показан один из распространенных способов создания экземпляра этого класса.
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
Комментарии
Имя служебного принципала — это имя, по которому клиент однозначно идентифицирует экземпляр службы. При установке нескольких экземпляров службы на компьютерах по всему лесу каждый экземпляр должен иметь собственную имя субъекта-службы. У данного экземпляра службы может быть несколько имен субъектов-служб, если для проверки подлинности могут использоваться несколько имен.
Когда клиент хочет подключиться к службе, он находит экземпляр службы, создает имя субъекта-службы для этого экземпляра и задает удостоверение.SpnEndpointIdentity Будет выполнена проверка того, что сообщение предназначено для этой службы.
Три режима проверки подлинности, используемые в Kerberos:
SSPINegotiate
Kerberos
KerberosOverTransport.
Конструкторы
| Имя | Описание |
|---|---|
| SpnEndpointIdentity(Claim) |
Инициализирует новый экземпляр SpnEndpointIdentity с указанным утверждением удостоверения. |
| SpnEndpointIdentity(String) |
Инициализирует новый экземпляр SpnEndpointIdentity с указанным именем субъекта-службы (SPN). |
Свойства
| Имя | Описание |
|---|---|
| IdentityClaim |
Возвращает утверждение удостоверения, соответствующее удостоверению. (Унаследовано от EndpointIdentity) |
| SpnLookupTime |
Указывает максимальное время, разрешенное для поиска имени субъекта-службы (SPN). |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Возвращает значение, определяющее, равен ли указанный объект текущему объекту удостоверения или имеет ли они равные свойства безопасности. (Унаследовано от EndpointIdentity) |
| GetHashCode() |
Предоставляет хэш-код для текущего экземпляра удостоверения. (Унаследовано от EndpointIdentity) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| Initialize(Claim, IEqualityComparer<Claim>) |
Инициализирует указанное EndpointIdentity утверждение и интерфейс и сравнивает равенство. (Унаследовано от EndpointIdentity) |
| Initialize(Claim) |
Инициализирует утверждение EndpointIdentity с указанным утверждением. (Унаследовано от EndpointIdentity) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает удостоверение. (Унаследовано от EndpointIdentity) |