I Vista og Windows 7 og senere er en sikkerhetsmekanisme kalt UAC (User Account Control) lagt til, og hvis UAC er aktivert, selv om brukeren logger inn med administratorrettigheter, kan ikke applikasjonene deres skrive til systemkatalogen, systemregisteret og andre innstillinger som som standard kan påvirke systemets normale drift. Denne mekanismen øker systemets sikkerhet betydelig, men for applikasjonsutviklere kan vi ikke tvinge brukere til å slå av UAC, men noen ganger må applikasjonen vi utvikler kjøre som administrator, hvordan kan man oppnå en slik funksjon? Slik implementerer et C#-program å be brukeren kjøre med administratorrettigheter. I dette eksempelet demonstrerer WinForm-programmet at et nytt prosjekt genereres og endres deretter: Metode 1: Start via System.Diagnostics.Process.Start(): Implementeringsmetode: Endre programfilen som genereres som standard, og den modifiserte koden er som følger: Siden koden allerede er kommentert, vil den ikke gå i detaljer; Effekt: Siden det startes ved å kalle det eksterne kallet System.Diagnostics.Process.Start(), vil det ikke be VS om å kreve administratorrettigheter når det kjøres direkte gjennom VS, kun programmet selv trenger administratorrettigheter, noe som er forskjellig fra programmet som genererer applikasjonen. Dette er hovedforskjellen fra implementeringen av metode 2. Metode 2: Ved å legge til en applikasjonsmanifestfil: På Prosjekt Legg til nytt element, velg Application Manifest File og klikk på Legg-til-knappen Når filen er lagt til, åpnes app.manifest-filen som standard, noe som vil: Modifisert til: Åpne deretter Prosjektegenskaper og endre manifestet i Ressurser i fanen Applikasjoner til den nye app.manifest. Bygg opp prosjektet på nytt, og når du åpner programmet igjen, vil du bli bedt om å kjøre med administratorrettigheter. Merk at hvis du begynner å feilsøke i VS, vil du bli bedt om at denne oppgaven krever at applikasjonen har økte rettigheter. Som vist nedenfor: Velg Restart med andre legitimasjoner for å gjøre det. Metode 3: Endre egenskapene til programfilen direkte Høyreklikk på programfilen i fanen Kompatibilitet i Egenskaper-dialogboksen som dukker opp Kryss av for «Kjør dette programmet som administrator».
|