Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 36267|Antwoord: 3

[WinForm] C#-programma's draaien met beheerdersrechten

[Link kopiëren]
Geplaatst op 09-10-2016 09:14:38 | | | |
In Vista en Windows 7 en later is een beveiligingsmechanisme genaamd UAC (User Account Control) toegevoegd, en als UAC is ingeschakeld, kunnen de gebruikers, zelfs als de gebruiker inlogt met beheerdersrechten, hun applicaties niet naar de systeemmap, het systeemregister en andere instellingen schrijven die standaard de normale werking van het systeem kunnen beïnvloeden. Dit mechanisme verbetert de beveiliging van het systeem aanzienlijk, maar voor applicatieontwikkelaars kunnen we gebruikers niet dwingen UAC uit te schakelen, maar soms moet de applicatie die we ontwikkelen wel op de manier van een beheerder draaien; hoe bereik je zo'n functie?
Zo implementeert een C#-programma het verzoek om de gebruiker te laten uitvoeren met beheerdersrechten.
In dit voorbeeld laat het WinForm-programma zien dat een nieuw project wordt gegenereerd en dienovereenkomstig wordt aangepast:
Methode 1: Start via System.Diagnostics.Process.Start():
Implementatiemethode: Wijzig het standaard gegenereerde programmabestand, en de aangepaste code is als volgt:
Aangezien de code al is besproken, zal er niet in detail op ingaan;
Effect: Omdat het wordt gestart door de externe aanroep van System.Diagnostics.Process.Start() aan te roepen, zal VS bij directe uitvoering via VS niet worden gevraagd beheerdersrechten nodig te hebben; alleen het programma zelf heeft beheerdersrechten nodig, wat verschilt van het programma dat de applicatie genereert. Dit is het belangrijkste verschil met de implementatie van methode 2.
Methode 2: Door een applicatiemanifestbestand toe te voegen:
Selecteer op het programma Project Add New Item Application Manifest File en klik op de knop Toevoegen
Eenmaal toegevoegd wordt het app.manifest-bestand standaard geopend, wat het volgende zal doen:
Aangepast tot:
Open vervolgens de Projecteigenschappen en pas het manifest aan in het tabblad Resources in het tabblad Applicaties naar het nieuwe app.manifest.
Bouw het project opnieuw op, en wanneer je het programma opnieuw opent, krijg je de opdracht om het met beheerdersrechten uit te voeren.
Let op: als je begint met debuggen in VS, krijg je te horen dat deze taak vereist dat de applicatie verhoogde rechten heeft. Zoals hieronder getoond:
Selecteer Herstarten met andere inloggegevens om dit te doen.
Methode 3: Wijzig direct de eigenschappen van het programmabestand
Klik met de rechtermuisknop op het programmabestand in het tabblad Compatibiliteit in het venster Eigenschappen dat verschijnt
Vink "Voer dit programma uit als beheerder".







Vorig:{"Element '_id' komt niet overeen met een veld of eigenschap van klasse."}
Volgend:.NET/C# 4 manieren om MongoDB-queries en fuzzy-queries te implementeren [met broncode]
 Huisbaas| Geplaatst op 09-10-2016 09:15:27 |
Bepaal of het programma als beheerder draait
Naamruimtes moeten worden toegevoegd:
met behulp van System.Security.Principal;


 Huisbaas| Geplaatst op 26-01-2021 09:59:52 |
C# bepaalt of een programma als administrator draait
https://www.itsvse.com/thread-3004-1-1.html
 Huisbaas| Geplaatst op 13-10-2025 09:18:33 |
.NET Core-apps draaien als beheerders op Windows-systemen, de code is als volgt:


Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com