I Vista og Windows 7 og senere er en sikkerhedsmekanisme kaldet UAC (User Account Control) tilføjet, og hvis UAC er slået til, kan brugeren selv med administratorrettigheder ikke skrive til systemmappen, systemregistret og andre indstillinger, der som standard kan påvirke systemets normale drift. Denne mekanisme forbedrer systemets sikkerhed betydeligt, men for applikationsudviklere kan vi ikke tvinge brugere til at slå UAC fra, men nogle gange skal applikationen, vi udvikler, køre på administratorens måde – hvordan opnår man sådan en funktion? Her er, hvordan et C#-program implementerer at bede brugeren om at køre med administratorrettigheder. I dette eksempel demonstrerer WinForm-programmet, at et nyt projekt genereres og ændres derefter: Metode 1: Start via System.Diagnostics.Process.Start(): Implementeringsmetode: Modificerer programfilen, der genereres som standard, og den ændrede kode er som følger: Da koden allerede er blevet kommenteret, vil den ikke gå i detaljer; Effekt: Da det startes ved at kalde det eksterne kald System.Diagnostics.Process.Start(), vil det ikke bede VS om at kræve administratorrettigheder, når det kører direkte gennem VS, kun programmet selv har administratorrettigheder, hvilket adskiller sig fra det program, der genererer applikationen. Dette er hovedforskellen fra implementeringen af metode 2. Metode 2: Ved at tilføje en applikationsmanifestfil: På projektet Tilføj nyt element vælger du Application Manifest File og klikker på Tilføj knappen Når filen er tilføjet, åbnes appen som standard, hvilket vil: Modificeret til: Åbn derefter Projektegenskaber og ændr manifestet i Ressourcer i fanen Applikationer til den nye app.manifest. Genopbyg projektet, og når du åbner programmet igen, vil du blive bedt om at køre med administratorrettigheder. Bemærk, at hvis du begynder at fejlfinde i VS, vil du blive bedt om, at denne opgave kræver, at applikationen har forhøjede rettigheder. Som vist nedenfor: Vælg Genstart med andre legitimationsoplysninger for at gøre det. Metode 3: Ændr programfilens egenskaber direkte Højreklik på programfilen i fanen Kompatibilitet i dialogboksen Egenskaber, som dukker op Tjek "Kør dette program som administrator".
|