[英]Find a WCF service caller's Active Directory domain username
考慮使用WsHttpBinding
的WCF服務,只允許域用戶調用此服務。
如何找到呼叫者的Active Directory用戶名?
獲取System.ServiceModel.ServiceSecurityContext.Current.WindowsIdentity.Name
屬性的值。
只要安全模式與綁定的None
不同,使用哪種綁定無關緊要。
如果安全模式為None
則System.ServiceModel.ServiceSecurityContext.Current
將為null
。
您可以通過以下方式獲取用戶的身份:
ServiceSecurityContext.Current.WindowsIdentity.Name
要么
OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name
您必須將某種用戶信息添加到用於聯系服務的消息結構中。
例如
public class UserInformation
{
public string User { get; set; }
public string Password { get; set; }
}
[DataContract]
public class Request
{
[DataMember]
public UserInformation User { get; set; }
[DataMember]
public MyRequest RequestBody { get; set; }
}
這樣,您可以在客戶端查詢活動目錄,填充UserInformation對象並作為消息結構的一部分發送用戶詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.