c# - एक विधि के लिए व्यवस्थापक अधिकार




permissions administrator (2)

क्या एक ही विधि के लिए व्यवस्थापक अधिकारों की आवश्यकता है?

कुछ इस तरह:

[RequireAdminRightsForThisMethod()]

private void TheMethod(){

    // Do something

}

आप अपने निष्पादन के लिए प्रशासनिक विशेषाधिकार मांगने के लिए अपनी विधि में PrincipalPermission विशेषता जोड़ सकते हैं:

[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]
public void MyMethod()
{
}

निम्नलिखित लेख में यह अधिक विस्तार से वर्णित है:

omegacoder.com/?p=82

यदि आप पहले से मौजूद प्रक्रिया को बढ़ाने के लिए एक रास्ता तलाश रहे हैं, तो मुझे संदेह है कि यह संभव है क्योंकि स्टार्टअप पर प्रक्रिया के लिए प्रक्रिया-स्तर पर व्यवस्थापक विशेषाधिकार दिए जाते हैं (इस संबंधित question देखें)। वांछित व्यवहार प्राप्त करने के लिए आपको अपना आवेदन "व्यवस्थापक के रूप में" चलाने के लिए होगा।

हालांकि, कुछ ऐसी चीजें हैं जो आपको अपनी इच्छानुसार करने की अनुमति दे सकती हैं, लेकिन चेतावनी दी जानी चाहिए कि इससे गंभीर सुरक्षा जोखिम खुल सकते हैं। एमएसडीएन मंचों में निम्नलिखित धागा देखें:

मानक उपयोगकर्ता से व्यवस्थापक क्रेडेंशियल को संकेत दिए बिना MyElevatedCom सर्वर लॉन्च करना

अद्यतन (टिप्पणी से)

ऐसा लगता है कि यदि किसी अद्यतन को ऊंचाई की आवश्यकता होती है तो आपके एप्लिकेशन अपडेट को एक अलग प्रक्रिया द्वारा किया जाता है (या तो एक अन्य निष्पादन योग्य, या कमांड लाइन स्विच के साथ आपका एप्लिकेशन)। उस अलग प्रक्रिया के लिए आप निम्नानुसार उन्नयन का अनुरोध कर सकते हैं:

var psi = new ProcessStartInfo();
psi.FileName = "path to update.exe";
psi.Arguments = "arguments for update.exe";
psi.Verb = "runas";

var process = new Process();
process.StartInfo = psi;
process.Start();   
process.WaitForExit();

एक विधि को चलाने के लिए व्यवस्थापकीय विशेषाधिकारों की आवश्यकता हो सकती है, लेकिन किसी विधि को निष्पादित करते समय स्वचालित रूप से व्यवस्थापक को उन्नत करना संभव नहीं है।







administrator