Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 36267|Resposta: 3

[WinForm] Programas C# rodando com privilégios de administrador

[Copiar link]
Publicado em 09/10/2016 09:14:38 | | | |
No Vista e Windows 7 e versões posteriores, um mecanismo de segurança chamado UAC (Controle de Conta de Usuário) foi adicionado, e se o UAC for ativado, mesmo que o usuário faça login com privilégios de administrador, suas aplicações não podem gravar no diretório do sistema, no registro do sistema e em outras configurações que possam afetar o funcionamento normal do sistema por padrão. Esse mecanismo aumenta muito a segurança do sistema, mas para desenvolvedores de aplicações, não podemos forçar os usuários a desligar o UAC, mas às vezes a aplicação que desenvolvemos precisa rodar como administrador, como realizar essa função?
Veja como um programa em C# implementa o pedido para o usuário executar com privilégios de administrador.
Neste exemplo, o programa WinForm demonstra que um novo projeto é gerado e modificado de acordo:
Método 1: Iniciar via System.Diagnostics.Process.Start():
Método de implementação: Modifique o arquivo do programa gerado por padrão, e o código modificado é o seguinte:
Como o código já foi comentado, ele não entrará em detalhes;
Efeito: Como é iniciado chamando a chamada externa de System.Diagnostics.Process.Start(), ao ser executado diretamente pelo VS, ele não solicitará ao VS que precise de direitos de administrador, apenas o próprio programa precisa de direitos de administrador, o que é diferente do programa que gera a aplicação. Essa é a principal diferença em relação à implementação do método 2.
Método 2: Adicionando um arquivo manifesto de aplicação:
No Projeto Adicionar Novo Item, selecione Arquivo de Manifesto da Aplicação e clique no botão Adicionar
Uma vez adicionado, o arquivo app.manifest é aberto por padrão, o que irá:
Modificado para:
Depois, abra as Propriedades do Projeto e modifique o Manifesto na aba Recursos na aba Aplicações para o novo app.manifest.
Reconstrua o projeto e, quando abrir o programa novamente, será solicitado a executar com privilégios de administrador.
Note que, se você começar a depurar no VS, será solicitado que essa tarefa exige que o aplicativo tenha privilégios elevados. Como mostrado abaixo:
Selecione Reiniciar com outras credenciais para fazer isso.
Método 3: Modificar diretamente as propriedades do arquivo do programa
Clique com o botão direito no arquivo do programa na aba Compatibilidade na caixa de diálogo Propriedades que aparece
Marque "Rodar este programa como administrador".







Anterior:{"Elemento '_id' não corresponde a nenhum campo ou propriedade da classe."}
Próximo:.NET/C# 4 Formas de Implementar Consultas MongoDB e Consultas Fuzzy [com Código-Fonte]
 Senhorio| Publicado em 09/10/2016 09:15:27 |
Determine se o programa está rodando como administrador
Espaços de nomes precisam ser adicionados:
usando System.Security.Principal;


 Senhorio| Publicado em 26/01/2021 09:59:52 |
C# determina se um programa está rodando como administrador
https://www.itsvse.com/thread-3004-1-1.html
 Senhorio| Publicado em 13/10/2025 09:18:33 |
Aplicativos .NET Core rodam como administradores em sistemas Windows, o código é o seguinte:


Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com