Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 36267|Răspunde: 3

[WinForm] Programele C# rulează cu privilegii de administrator

[Copiază linkul]
Postat pe 09.10.2016 09:14:38 | | | |
În Vista și Windows 7 și versiunile ulterioare, a fost adăugat un mecanism de securitate numit UAC (Control al Contului de Utilizator), iar dacă UAC este activat, chiar dacă utilizatorul se autentifică cu privilegii de administrator, aplicațiile sale nu pot scrie în directorul sistemului, registrul sistemului și alte setări care pot afecta implicit funcționarea normală a sistemului. Acest mecanism sporește considerabil securitatea sistemului, dar pentru dezvoltatorii de aplicații nu putem forța utilizatorii să dezactiveze UAC, însă uneori aplicația pe care o dezvoltăm trebuie să ruleze ca administrator, cum să realizăm o astfel de funcție?
Iată cum implementează un program C# solicitarea utilizatorului să ruleze cu privilegii de administrator.
În acest exemplu, programul WinForm demonstrează că un proiect nou este generat și modificat corespunzător:
Metoda 1: Începe prin System.Diagnostics.Process.Start():
Metodă de implementare: Modificați fișierul de program generat implicit, iar codul modificat este următorul:
Deoarece codul a fost deja comentat, nu va intra în detalii;
Efect: Deoarece este pornit prin apelarea externă a apelului System.Diagnostics.Process.Start(), când rulează direct prin VS, nu va solicita ca VS să aibă nevoie de drepturi de administrator, ci doar programul în sine are nevoie de drepturi de administrator, ceea ce este diferit de programul care generează aplicația. Aceasta este principala diferență față de implementarea metodei 2.
Metoda 2: Prin adăugarea unui fișier manifest de aplicație:
Pe proiectul Adaugă element nou, selectează fișierul manifest aplicație și apasă butonul Adaugă
Odată adăugat, fișierul app.manifest este deschis implicit, ceea ce va face:
Modificat pentru:
Apoi deschide Proprietățile Proiectului și modifică Manifestul din resursele filei Aplicații în noul app.manifest.
Reconstruiește proiectul, iar când vei deschide din nou programul, ți se va cere să rulezi cu privilegiile de administrator.
Rețineți că dacă începeți depanarea în VS, vi se va cere că această sarcină necesită ca aplicația să aibă privilegii ridicate. Așa cum se arată mai jos:
Selectează Restart cu alte acreditări pentru a face asta.
Metoda 3: Modifică direct proprietățile fișierului de program
Faceți clic dreapta pe fișierul programului din fila Compatibilitate din fereastra de dialog Proprietăți care apare
Bifează "Rulează acest program ca administrator".







Precedent:{"Elementul '_id' nu corespunde niciunui corp sau proprietate de clasă."}
Următor:.NET/C# 4 Modalități de a implementa interogările MongoDB și interogările fuzzy [cu cod sursă]
 Proprietarul| Postat pe 09.10.2016 09:15:27 |
Determină dacă programul rulează ca administrator
Trebuie adăugate spații de nume:
folosind System.Security.Principal;


 Proprietarul| Postat pe 26.01.2021 09:59:52 |
C# determină dacă un program rulează ca administrator
https://www.itsvse.com/thread-3004-1-1.html
 Proprietarul| Postat pe 13.10.2025 09:18:33 |
Aplicațiile .NET Core rulează ca administratori pe sistemele Windows, codul este următorul:


Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com