मेरे पास एक ऐसा एप्लिकेशन है जो सामान्य उपयोगकर्ता के रूप में चल रहा है, और एक सेवा स्थानीय प्रणाली के रूप में चल रही है। एक बार जब सेवा ने कुछ और सामान किया है, तो मैं एप्लिकेशन को एप्लिकेशन को फिर से शुरू करने के लिए सेवा बताने में सक्षम होना चाहता हूं। (इसलिए यह सेवा नहीं चल रही है, जबकि सेवा "चीज़" कर रही है।) सेवा के लिए एप्लिकेशन को शुरू करने में सक्षम होने के लिए जिस उपयोगकर्ता ने इसे पहली बार शुरू किया था, उसे उपयोगकर्ता टोकन की आवश्यकता है। एप्लिकेशन छोड़ने से पहले सेवा में टोकन भेजता है, लेकिन जब सेवा इसका उपयोग करने का प्रयास कर रही है तो टोकन/हैंडल अमान्य है। (प्राथमिक बात यह है कि यह प्राथमिक टोकन प्राप्त करने के लिए डुप्लिकेट टोकनएक्स है।)CreateProcessAsUser के लिए मैं वैध उपयोगकर्ता टोकन कैसे प्राप्त करूं?
क्या उपयोगकर्ता टोकन हमेशा ओपनप्रोसेस टोकन नामक प्रक्रिया में मान्य है?
क्या ऐसा कुछ और तरीका हो सकता है? मैं नहीं चाहता कि उपयोगकर्ता को लॉगऑनसर के साथ एप्लिकेशन पर "लॉग ऑन" करना पड़े। वह सिर्फ मूर्खतापूर्ण होगा। मुझे लगता है कि मैं ऐप से सेवा में "explorer.exe" के लिए एक प्रोसेस हैंडल सौंप सकता हूं, जो सेवा उपयोगकर्ता टोकन प्राप्त करने के लिए उपयोग कर सकती है, लेकिन उसे प्रोसेस डप हैंडल एक्सेस की आवश्यकता होगी। मैं उस समाधान के बारे में रोमांचित नहीं हूं, लेकिन शायद यह करने का तरीका है?
धन्यवाद, मैं पहले लेख के साथ जा रहा हूं, ZwCreateToken के साथ एक टोकन बना रहा हूं। संदेश में मुझे आवश्यक सभी चीजों को पैक करने के लिए यह थोड़ा गन्दा है, लेकिन जाहिर है कि दूसरों के लिए काम किया है .. –
पहला आलेख कुछ त्रुटियों में प्रतीत होता है, दूसरा काफी अच्छा लगता है।लेकिन मुझे यकीन नहीं है कि आप ZWCreateToken (एक अनियंत्रित, असमर्थित और पूरी तरह से स्थिर विधि) का उपयोग क्यों करेंगे, जब आप जो चाहते हैं उसे दस्तावेज करने के तरीके हैं। –
क्षमा करें, मेरा मतलब दूसरा था। पहले भी नहीं मिला। मैं कुछ ऐसा कर रहा हूं जैसे http://www.apnilife.com/E-Books_apnilife/Windows%20Programming_apnilife/Windows%20NT%20Undocumented%20APIs/1996%20Ch08_apnilife.pdf। क्या आप CreateToken को रेफर कर रहे हैं? –