이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 36267|회답: 3

[윈폼] C# 프로그램은 관리자 권한으로 실행됩니다

[링크 복사]
게시됨 2016. 10. 9. 오전 9:14:38 | | | |
Vista 및 Windows 7 이후 버전에서는 UAC(사용자 계정 제어)라는 보안 메커니즘이 추가되었으며, UAC가 켜져 있으면 사용자가 관리자 권한으로 로그인하더라도 애플리케이션이 시스템 디렉터리, 시스템 레지스트리 및 기타 설정에 기본적으로 쓰지 못해 시스템의 정상 작동에 영향을 줄 수 있습니다. 이 메커니즘은 시스템의 보안을 크게 향상시키지만, 애플리케이션 개발자에게 UAC를 강제로 끌 수는 없으며, 때로는 우리가 개발하는 애플리케이션이 관리자 역할을 해야 할 때가 있습니다. 어떻게 그런 기능을 구현할 수 있을까요?
다음은 C# 프로그램이 사용자에게 관리자 권한으로 실행을 요청하는 방식을 구현하는 방법입니다.
이 예시에서 WinForm 프로그램은 새로운 프로젝트가 생성되고 이에 맞게 수정됨을 보여줍니다:
방법 1: System.Diagnostics.Process.Start(:
구현 방법: 기본적으로 생성된 프로그램 파일을 수정하면 수정된 코드는 다음과 같습니다:
코드가 이미 주석이 달렸기 때문에 자세한 내용은 다루지 않겠습니다;
효과: System.Diagnostics.Process.Start()라는 외부 호출을 호출하여 시작되기 때문에, VS를 통해 직접 실행할 때는 관리자 권한이 필요하다고 요청하지 않고, 프로그램 자체만 관리자 권한이 필요하며, 이는 애플리케이션을 생성하는 프로그램과는 다릅니다. 이것이 방법 2의 구현과 가장 큰 차이점입니다.
방법 2: 애플리케이션 명예 파일을 추가하는 방법:
프로젝트 새 항목 추가에서 Application Manifest File을 선택한 후 Add 버튼을 클릭하세요
추가되면 app.manifest 파일이 기본적으로 열리며, 다음과 같은 기능을 수행합니다:
수정:
그 다음 프로젝트 속성(Project Properties)을 열고 애플리케이션 탭의 Resources 탭에서 Manifest를 새 app.manifest로 수정하세요.
프로젝트를 재구성하면 프로그램을 다시 열면 관리자 권한으로 실행하라는 메시지가 뜹니다.
VS에서 디버깅을 시작하면 이 작업이 애플리케이션에 권한이 상승해야 한다는 안내가 뜨게 됩니다. 아래에 나와 있습니다:
다른 자격 증명으로 재시작을 선택하세요.
방법 3: 프로그램 파일의 속성을 직접 수정하기
속성 대화상자의 호환성 탭에서 프로그램 파일을 우클릭하세요
"관리자 역할로 이 프로그램을 실행하기"를 확인해 보세요.







이전의:{"요소 '_id'은 어떤 필드나 속성도 클래스에 맞지 않습니다."}
다음:.NET/C# MongoDB 쿼리 및 퍼지 쿼리 구현 4가지 방법 [소스 코드 포함]
 집주인| 게시됨 2016. 10. 9. 오전 9:15:27 |
프로그램이 관리자 상태로 실행 중인지 확인하세요
네임스페이스를 추가해야 합니다:
System.Security.Principal을 사용;


 집주인| 게시됨 2021. 1. 26. 오전 9:59:52 |
C#은 프로그램이 관리자 상태로 실행 중인지 여부를 결정합니다
https://www.itsvse.com/thread-3004-1-1.html
 집주인| 게시됨 2025. 10. 13. 오전 9:18:33 |
.NET Core 앱은 Windows 시스템에서 관리자 방식으로 실행됩니다, 코드는 다음과 같습니다:


면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com