Development Tip

프로그램이 시작될 때 관리자 권한을 요청하는 방법은 무엇입니까?

yourdevel 2020. 10. 26. 21:25
반응형

프로그램이 시작될 때 관리자 권한을 요청하는 방법은 무엇입니까?


Windows Vista에서 관리자 권한으로 소프트웨어를 실행하려면 소프트웨어가 필요합니다 (관리자 권한없이 실행하면 충돌이 발생 함).

다른 소프트웨어를 실행할 때 "이 소프트웨어는 관리자 권한으로 실행됩니다. 계속 하시겠습니까?"와 같은 메시지가 시스템에서 표시되는 것을 보았습니다. 앱이 관리자 권한을 얻으려고 할 때.

Windows Vista에서 C # 앱을 실행할 때 관리자 권한을 요청하려면 어떻게합니까?


매니페스트 파일에 다음을 추가합니다.

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

highestAvailable레벨 에도 사용할 수 있습니다 .

매니페스트 파일을 포함하는 방법은 다음과 같습니다.

http://msdn.microsoft.com/en-us/library/bb756929.aspx

추신 : 매니페스트 파일이없는 경우 쉽게 새 파일을 추가 할 수 있습니다.

Visual Studio에서 프로젝트-> 항목 추가-> 응용 프로그램 매니페스트 파일 선택 (Visual C # 항목의 일반 아래)을 마우스 오른쪽 단추로 클릭합니다.

추가 된 파일이 이미 단지의 레벨 변경, 위의 부분이있을 것이다 requireAdministrator으로부터를asInvoker


이 XML을 yourexename.exe.manifest라는 파일에 넣습니다.

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
   <security>
     <requestedPrivileges>
        <requestedExecutionLevel level="highestAvailable" />
     </requestedPrivileges>
   </security>
</trustInfo>
</assembly>

requestedExecutionLevel매니페스트 에서 토큰 을 사용해야합니다 .

http://www.developerfusion.com/code/7987/making-a-net-app-run-on-vista-with-administrator-priviledges/


F # Visual Studio 2013의 경우 /win32manifest다음과 같이 FSharp 컴파일러의 플래그를 사용하여 관리자 권한 상승을 요청하는 매니페스트 파일이 포함 되었습니다. 따라서 "App.Exe"라는 프로젝트 출력이 주어지면

  1. 프로젝트에 파일을 추가 할 수 있습니다 편의를 위해 다음과 같은 내용으로 파일을 (만듭니다. 그건 있는지 확인 Build Action입니다 None' and... 복사 출력에 is음주 복사하지 . By convention such a file is named App.Exe.manifest`를. 당신이있는 UIAccess (사용자 인터페이스)를 요구하는 경우, 어셈블리 강력한 이름이어야합니다.

    <?xml version="1.0" encoding="utf-8" ?>
    <asmv1:assembly manifestVersion="1.0" 
        xmlns="urn:schemas-microsoft-com:asm.v1"
        xmlns:asmv1="urn:schemas-microsoft-com:asm.v1"
        xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <assemblyIdentity version="1.0.0.0" name="App" />
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
          </requestedPrivileges>
        </security>
      </trustInfo>
    </asmv1:assembly>
    
  2. Other flags:다음을 포함 하도록 프로젝트 대화 상자 빌드 패널의 입력 필드를 편집합니다 /win32manifest:<ApplicationManifestFile>.. 예를 들어,이 경우 /win32manifest:App.Exe.manifest.

참고 URL : https://stackoverflow.com/questions/7666408/how-to-request-administrator-permissions-when-the-program-starts

반응형