Στα Vista και τα Windows 7 και νεότερες εκδόσεις, έχει προστεθεί ένας μηχανισμός ασφαλείας που ονομάζεται UAC (User Account Control) και εάν ο UAC είναι ενεργοποιημένος, ακόμα κι αν ο χρήστης συνδεθεί με δικαιώματα διαχειριστή, οι εφαρμογές του δεν μπορούν να εγγραφούν στον κατάλογο συστήματος, στο μητρώο συστήματος και σε άλλες ρυθμίσεις που ενδέχεται να επηρεάσουν την κανονική λειτουργία του συστήματος από προεπιλογή. Αυτός ο μηχανισμός ενισχύει σημαντικά την ασφάλεια του συστήματος, αλλά για τους προγραμματιστές εφαρμογών, δεν μπορούμε να αναγκάσουμε τους χρήστες να απενεργοποιήσουν το UAC, αλλά μερικές φορές η εφαρμογή που αναπτύσσουμε πρέπει να εκτελείται με τον τρόπο του διαχειριστή, πώς να επιτύχετε μια τέτοια λειτουργία; Δείτε πώς υλοποιείται ένα πρόγραμμα C# προτρέποντας τον χρήστη να εκτελέσει με δικαιώματα διαχειριστή. Σε αυτό το παράδειγμα, το πρόγραμμα WinForm δείχνει ότι δημιουργείται ένα νέο έργο και τροποποιείται ανάλογα: Μέθοδος 1: Ξεκινήστε μέσω System.Diagnostics.Process.Start(): Μέθοδος υλοποίησης: Τροποποιήστε το αρχείο προγράμματος που δημιουργήθηκε από προεπιλογή και ο τροποποιημένος κώδικας είναι ο εξής: Δεδομένου ότι ο κώδικας έχει ήδη σχολιαστεί, δεν θα υπεισέλθει σε λεπτομέρειες. Αποτέλεσμα: Δεδομένου ότι ξεκινά καλώντας την εξωτερική κλήση του System.Diagnostics.Process.Start(), όταν εκτελείται απευθείας μέσω του VS, δεν θα ζητήσει από το VS να χρειαστεί δικαιώματα διαχειριστή, μόνο το ίδιο το πρόγραμμα χρειάζεται δικαιώματα διαχειριστή, το οποίο είναι διαφορετικό από το πρόγραμμα που δημιουργεί την εφαρμογή. Αυτή είναι η κύρια διαφορά από την εφαρμογή της μεθόδου 2. Μέθοδος 2: Προσθέτοντας ένα αρχείο δήλωσης εφαρμογής: Στο Project Add New Item, επιλέξτε Application Manifest File και κάντε κλικ στο κουμπί Προσθήκη Μόλις προστεθεί, το αρχείο app.manifest ανοίγει από προεπιλογή, το οποίο: Τροποποιήθηκε σε: Στη συνέχεια, ανοίξτε τις Ιδιότητες έργου και τροποποιήστε τη Διακήρυξη στους Πόρους στην καρτέλα Εφαρμογές στη νέα εφαρμογή.δήλωση. Δημιουργήστε ξανά το έργο και όταν ανοίξετε ξανά το πρόγραμμα, θα σας ζητηθεί να εκτελέσετε με δικαιώματα διαχειριστή. Σημειώστε ότι εάν ξεκινήσετε τον εντοπισμό σφαλμάτων στο VS, θα σας ζητηθεί ότι αυτή η εργασία απαιτεί από την εφαρμογή να έχει αυξημένα δικαιώματα. Οπως φαίνεται παρακάτω: Επιλέξτε Επανεκκίνηση με άλλα διαπιστευτήρια για να το κάνετε. Μέθοδος 3: Τροποποιήστε απευθείας τις ιδιότητες του αρχείου προγράμματος Κάντε δεξί κλικ στο αρχείο προγράμματος στην καρτέλα Συμβατότητα στο παράθυρο διαλόγου Ιδιότητες που εμφανίζεται Επιλέξτε "Εκτέλεση αυτού του προγράμματος ως διαχειριστής".
|