I Vista och Windows 7 och senare har en säkerhetsmekanism kallad UAC (User Account Control) lagts till, och om UAC är aktiverad, även om användaren loggar in med administratörsbehörighet, kan deras applikationer inte skriva till systemkatalogen, systemregistret och andra inställningar som kan påverka systemets normala funktion som standard. Denna mekanism förbättrar systemets säkerhet avsevärt, men för applikationsutvecklare kan vi inte tvinga användare att stänga av UAC, men ibland måste applikationen vi utvecklar köras som administratör, hur ska man uppnå en sådan funktion? Så här implementerar ett C#-program att uppmana användaren att köra med administratörsbehörigheter. I detta exempel visar WinForm-programmet att ett nytt projekt genereras och modifieras därefter: Metod 1: Starta via System.Diagnostics.Process.Start(): Implementeringsmetod: Modifiera programfilen som genereras som standard, och den modifierade koden är följande: Eftersom koden redan har kommenterats kommer den inte att gå in på detaljer; Effekt: Eftersom det startas genom att anropa det externa anropet System.Diagnostics.Process.Start(), kommer det inte att be VS att kräva administratörsrättigheter när det körs direkt via VS, endast programmet självt behöver administratörsrättigheter, vilket skiljer sig från programmet som genererar applikationen. Detta är den största skillnaden från implementeringen av metod 2. Metod 2: Genom att lägga till en applikationsmanifestfil: På Project Add New Item, välj Application Manifest File och klicka på knappen Lägg till När filen har lagts till öppnas app.manifest-filen som standard, vilket kommer: Modifierad till: Öppna sedan Projektegenskaper och ändra manifestet i Resources i fliken Applications till den nya app.manifest. Bygg om projektet, och när du öppnar programmet igen kommer du att bli ombedd att köra med administratörsbehörighet. Observera att om du börjar felsöka i VS kommer du att få veta att denna uppgift kräver att applikationen har förhöjda behörigheter. Som visas nedan: Välj Starta om med andra inloggningsuppgifter för att göra det. Metod 3: Modifiera programfilens egenskaper direkt Högerklicka på programfilen under fliken Kompatibilitet i dialogrutan Egenskaper som dyker upp Kryssa i "Kör detta program som administratör".
|