SpnEndpointIdentity 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當繫結使用 Kerberos 時,代表身分識別的服務主要名稱 (SPN)。
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
備註
SPN 是用戶端用來唯一識別服務執行個體的名稱。 若您透過樹系在電腦上安裝多個服務執行個體,則每個執行個體都須有自己的 SPN。 若用戶端需使用多個名稱進行驗證,則指定的服務執行個體可擁有多個 SPN。
當用戶端要連接服務時,它會尋找服務執行個體,編出該執行個體的 SPN,並將身分識別設為 SpnEndpointIdentity。 會檢查該訊息是否要傳給該服務。
Kerberos 使用的三種驗證模式為︰
SSPINegotiate
Kerberos
KerberosOverTransport.
建構函式
SpnEndpointIdentity(Claim) |
使用指定的身分識別宣告,初始化 SpnEndpointIdentity 類別的新執行個體。 |
SpnEndpointIdentity(String) |
使用指定的服務主要名稱 (SPN),初始化 SpnEndpointIdentity 類別的新執行個體。 |
屬性
IdentityClaim |
取得對應到身分識別的身分識別宣告。 (繼承來源 EndpointIdentity) |
SpnLookupTime |
指定查閱服務主要名稱 (SPN) 所允許的最長時間。 |
方法
Equals(Object) |
傳回值,這個值會判斷指定的物件是否與目前的身分識別物件相等,或是否擁有相同的安全性屬性。 (繼承來源 EndpointIdentity) |
GetHashCode() |
針對身分識別目前的執行個體提供雜湊程式碼。 (繼承來源 EndpointIdentity) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
Initialize(Claim) |
使用指定的宣告初始化 EndpointIdentity。 (繼承來源 EndpointIdentity) |
Initialize(Claim, IEqualityComparer<Claim>) |
使用指定的宣告及介面來初始化 EndpointIdentity 並比較是否相等。 (繼承來源 EndpointIdentity) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回身分識別。 (繼承來源 EndpointIdentity) |