2009-12-09 3 views
4

관리자 계정과 데스크톱 상호 작용을 사용하여 ASP.NET 응용 프로그램에서 하나의 콘솔 응용 프로그램을 실행해야합니다. 아래 코드를 시도했지만 콘솔 앱은 네트워크 서비스 계정 내에서 정상적으로 실행됩니다. 관리자 계정에서 콘솔을 실행하는 방법에 대한 아이디어가 있습니까?asp.net 관리자 계정으로 프로그램 실행

string enginePath = Server.MapPath(@"~/engine/MyConsole.exe"); 
    System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(enginePath, ""); 
    System.Diagnostics.Process p = System.Diagnostics.Process.Start(info);    
    p.WaitForExit(); 

감사합니다, 토마스는

+0

로컬 관리자 그룹의 계정 (예 : 로컬 시스템)에 응용 프로그램 풀 ID를 설정하면됩니다. 하지만 웹 앱에서 콘솔 앱을 호출하는 것은 결코 좋은 방법이 아닙니다. –

답변

0
가장을 사용할 수

은, 개인적으로 here

내가 asp.net에서 가장처럼 해달라고 예에게이 , 당신이 암호로 처리해야하거나 변경하지 나 코드에서 변경합니다. asp.net 사용자로 원하는 것을 실행할 수있는 방법이 있습니까?

편집 :

당신은 acyually, 즉 적어도, 암호가 조금 문제 allieviate 것

+1

불행히도 ASP.NET 계정에 가장 (impersonation) 권한이 없으므로 ASP.NET에서 관리자 계정에 로그인 할 수 없습니다. 닫힌 사이클 같아. – Tomas

0

당신은 매니페스트 파일을 사용할 수있는 사용자 이름으로 "네트워크 서비스"를 사용하여 네트워크 서비스를 가장 수 있으며, 관리자 계정으로 항상 실행되도록 콘솔 응용 프로그램에 빌드했습니다. 이 부분은 example을 참조하십시오.

이 방법이 효과가 없다면 ProcessStartInfo 속성에 관리자 계정 자격증 명을 입력 해보십시오.

string enginePath = Server.MapPath(@"~/engine/MyConsole.exe"); 
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(enginePath, ""); 
info.UserName = "Administrator"; 
info.Password = "Password"; 
System.Diagnostics.Process p = System.Diagnostics.Process.Start(info);    p.WaitForExit(); 
+0

NETWORK SERVICE 계정 (ASP.NET)에서 실행 된 콘솔에 대한 매니페스트 파일을 포함하는 방법을 잘 모르겠습니다. 내 콘솔 응용 프로그램에 매니페스트 파일을 포함했지만 예상대로 asp.net 계정에서만 실행됩니다. Tomas

+0

이 http://msdn.microsoft.com/en-us/library/bb756929를 참조하십시오. 실제 매개 변수의 의미에 대한 자세한 내용은 aspx를 참조하십시오. 그러나 "requireAdministrator"를 사용하는 경우 Admin 계정으로 실행해야합니다. – James

0

다른 사용자가 이미 가장을 제안했습니다. 그 정도면 충분합니다. 그가 말했듯이, 다루기 힘든 유지 보수상의 골칫거리들과 몇 가지 보안 함의가 있습니다. 내가 또는 귀하의 상황에 적용되지 않을 수 있습니다 과거에 사용했던

일부 옵션은 다음과 같습니다 작업이 예측 가능한 일정에

  1. 경우 그냥 예약 된 작업에 추가 Windows에서 적절한 작업자 계정 (관리자 또는 기타)을 설정하고 보자. 프로그래밍 방식으로 예약 된 작업을 트리거하는 방법도 있다고 생각하지만 결코 그렇게 할 필요가 없습니다. Google 검색을 사용하면 도움이됩니다.

  2. 콘솔 응용 프로그램 논리를 적절한 계정에서 실행되는 서비스로 구현하십시오. 그런 다음 서비스가 웹 응용 프로그램에서 "방아쇠"를 듣도록하십시오 - 파일 방울 또는 더 간단한 것.

어느 쪽이든 아이디어는 ASP 페이지에 credientials를 저장하지 않아도되고 필요없는 프로세스 권한을 부여하지 않아도되는 것입니다.

관련 문제