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 с заданным именем участника-службы. |
Свойства
IdentityClaim |
Возвращает идентификационное утверждение, соответствующее идентификации. (Унаследовано от EndpointIdentity) |
SpnLookupTime |
Задает максимально допустимое время для поиска имени участника-службы. |
Методы
Equals(Object) |
Возвращает значение, определяющее, равен ли указанный объект текущему объекту удостоверения или имеют ли одинаковые свойства безопасности. (Унаследовано от EndpointIdentity) |
GetHashCode() |
Предоставляет хэш-код для текущего экземпляра удостоверения. (Унаследовано от EndpointIdentity) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
Initialize(Claim) |
Инициализирует EndpointIdentity с указанным утверждением. (Унаследовано от EndpointIdentity) |
Initialize(Claim, IEqualityComparer<Claim>) |
Инициализирует EndpointIdentity с указанным утверждением и интерфейсом, а также проверяет равенство. (Унаследовано от EndpointIdentity) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает удостоверение. (Унаследовано от EndpointIdentity) |