2011-02-01 15 views
8

WsHttpBinding का उपयोग कर डब्ल्यूसीएफ सेवा पर विचार करें जिसके लिए केवल डोमेन उपयोगकर्ताओं को इस सेवा को कॉल करने की अनुमति है।एक डब्ल्यूसीएफ सेवा कॉलर की सक्रिय निर्देशिका डोमेन उपयोगकर्ता नाम

आप कॉलर का सक्रिय निर्देशिका उपयोगकर्ता नाम कैसे ढूंढ सकते हैं?

उत्तर

14

System.ServiceModel.ServiceSecurityContext.Current.WindowsIdentity.Name संपत्ति का मूल्य प्राप्त करें।

इससे कोई फर्क नहीं पड़ता कि आप बाध्यकारी के लिए None से सुरक्षा मोड अलग होने तक किस बाध्यकारी उपयोग करते हैं।

यदि सुरक्षा मोड None है तो System.ServiceModel.ServiceSecurityContext.Currentnull होगा।

+1

इस बारे में नहीं पता था ... + 1 – jcvandan

9

आप फोन करके उपयोगकर्ता की पहचान प्राप्त कर सकते हैं:

ServiceSecurityContext.Current.WindowsIdentity.Name 

या

OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name 
-4

आपको उस सेवा संरचना से कुछ प्रकार की उपयोगकर्ता जानकारी जोड़नी होगी जिसका उपयोग आप सेवा से संपर्क करने के लिए कर रहे हैं।

उदा।

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 वस्तु को पॉप्युलेट और संदेश संरचना के भाग के रूप उपयोगकर्ता विवरण पर भेजें।

संबंधित मुद्दे