2013-09-27 7 views
6

विंडोज विस्टा में और बाद में, LogonUser एक गैर-विशेषाधिकार प्राप्त टोकन देता है, भले ही उपयोगकर्ता प्रदान किया गया हो। इस प्रकार, जब आप उस टोकन का उपयोग करके प्रतिरूपण करते हैं, तो आप गैर-ऊंचे होते हैं। किसी व्यवस्थापक उपयोगकर्ता के लिए सही उपयोगकर्ता नाम और पासवर्ड दिया गया है, तो आप उस कोड को कैसे चलाते हैं जिसमें उस व्यवस्थापक के लिए उच्च विशेषाधिकार हैं?उपयोगकर्ता नाम और पासवर्ड को देखते हुए, आप उस उपयोगकर्ता को कैसे प्रतिरूपित करते हैं?

+0

क्या आप एक एडी खाता या स्थानीय खाता का प्रतिरूपण करना चाहते हैं? – Botonomous

+1

सक्रिय निर्देशिका, मुख्य रूप से - हालांकि अगर यह स्थानीय के लिए भी काम करता है तो यह बहुत अच्छा होगा! –

उत्तर

0

आप एक Windows सेवा लिख ​​रहे हैं, तो LOGON32_LOGON_INTERACTIVE के बजाय LOGON32_LOGON_SERVICE या LOGON32_LOGON_NEW_CREDENTIALS का उपयोग कर एक में परिणाम होगा विशेषाधिकार प्राप्त टोकन, जब तक कि आप जिस उपयोगकर्ता को प्रतिरूपण करना चाहते हैं, 'सेवा के रूप में लॉग ऑन करें' अनुमतियां हैं।

यह एक सामान्य समाधान प्रदान नहीं करता है (यदि आप उपयोगकर्ता के सामने वाले एप्लिकेशन को लिख रहे हैं तो यह काम नहीं करेगा), लेकिन मेरे पास विशिष्ट समस्या को हल करने के लिए पर्याप्त है।

1

मैंने अभी this example के साथ काम किया है, यह वास्तव में ठीक काम करता है। मुझे लगता है कि अगर आप इस संदर्भ में कोड चलाना चाहते हैं आप द्वारा वर्तमान धागा प्रिंसिपल सेट करना होगा:

Thread.CurrentPrincipal = new System.Security.Principal.WindowsPrincipal(WindowsIdentity.GetCurrent()); 
संबंधित मुद्दे

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