- c#
- postman
- postman pre-request
- Java
- postman csv
- postman session
- Android/iOS Developer
- 프런트엔드
- Android
- MFC
- web developer
- Interaction developer
- postman automations
- postman tests
- LSL_Script
- 우수한 프런트 개발자
- postman html parse
- oracle
- postman excel
- 좋은 개발자
- emplace_back
- C++
- UI/UX Engineer
- solidity
- postman collection variables
- 다빈치 리졸브
- Intellij
- postman collection
- Front-end developer
- Unity
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Today
- Total
david's daily developer note
.NET 응용 프로그램의 관리자 권한 수행. 본문
DB와 응용프로그램 사이에서, 공간질의나, 공간 타입등을 지원하는 미들웨어를 개발하는 중에,
개발 중인 프로젝트가 서비스 모드로 동작하는 것이, Vista이후 OS에서 권한문제가 발생하는 것을 알았다.
해결책을 위해서 구글링을 좀 했는데, 항상 그렇듯이 삽질이 힘들뿐 알면 간단하더라,
일단 프로그램이 OS에서 관리자의 권한이 필요한 기능을 수행하려 한다면, 프로젝트에 매니페스트 파일을 추가하고, 프로그램의 권한을 상승시키면 해결된다. 아래 그림을 보자.
우선 권한 상승하려는 프로젝트의 속성에서 보안 탭을 누른다. 보안 탭에서 "ClickOnce 보안 설정 사용"을 체크했다가, 해제하면, 프로젝트 Properties 트리에 app.manifest파일이 생성된다.
app.manifest파일을 눌러보면, 아래와 같이 Xml형식의 설정 내용이 등장한다~
여기서 주석되어 있는 이 부분이 중요하다.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
3가지 노드의 내용은 다음과 같다.
asInvoker - 어플리케이션이 부모 프로세스와 동일한 토큰으로 실행.
highestAvailable - 어플리케이션이 현재 사용자가 사용할 수 있는 최고 권한으로 실행.
requireAdministrator - 어플리케이션이 관리자만 실행되므로 관리자의 전체 토큰으로 어플리케이션을 시작해야함
관리자 권한 실행을 위해서 주석 아래의 <requestedExecutionLevel level="asInvoker" uiAccess="false" />를
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />로 변경해주고, 수행하면된다.
'[Develop] Language > C#' 카테고리의 다른 글
C# 다수의 버튼 컨트롤을 동적으로 생성 및 버튼 이동시키는 이벤트 추가하기 (2) | 2010.12.29 |
---|---|
C#, 이미지 작업. (0) | 2010.12.08 |
C#, 상속 관계가 존재하는 Class들에 대한 is연산중 범할 수 있는 논리 오류.. (0) | 2010.10.27 |
.NET 텍스트 파일 한글 읽어오기. (0) | 2010.10.27 |
C#, Collection Type Sorting [ Query Keyword , "orderby" , Sorting] (0) | 2010.10.01 |