2012-04-19 2 views
1

asp.net 웹 사이트에서 외부 응용 프로그램을 시작하는 것과 관련된 질문이 있습니다. 이제는이를 방지하기위한 보안 조치가 있다고 생각합니다. 좋은 사례는 아니지만 인트라넷 사이트의 경우이를 수행하는 데 매우 편리 할 것입니다.asp.net에서 외부 프로그램 시작

지금까지 서버를 로컬에서 (디버그로) 실행하고 있다면 외부 앱을 실행할 수있는 곳을 찾았습니다. 파일을 내 웹 서버에 게시하면 더 이상 작동하지 않습니다. 내 파일 경로가 상상할 수 없을 것이라고 생각하지만 로컬 파일이 있는지 어떻게 확인할 수 있습니까? 아니면 내가 할 수 있니?

그래서 여기 내 코드입니다 :

//the actual launch button on the page 
protected void btnLaunchTnet_Click(object sender, EventArgs e) 
{ 
    string tnetpath = "c:\path\tnet.exe";  
    RunProcess(tnetpath, ""); 
} 


private void RunProcess(string cmd, string arguments) 
{ 
    System.Diagnostics.Process p; 
    p = new System.Diagnostics.Process(); 

    p.StartInfo.FileName = cmd; 

    if (arguments.Length > 1) 
    { 
     p.StartInfo.Arguments = arguments; 
    } 
    p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
    p.StartInfo.RedirectStandardOutput = false; 
    p.StartInfo.UseShellExecute = false; 
    p.Start(); 
} 

나는 또한 비활성화하거나

private bool CheckFileExists(string filepath) 
{ 
    FileInfo SetupPath = new FileInfo(filepath); 
    return SetupPath.Exists; 
} 
+0

@ "c : \ path \ tnet.exe"또는 "c : \\ 경로 \\ tnet.exe" – SimpleVar

+0

그래, 내가 그랬어, 그 백 슬래시를 이스케이프하려면 tnetpath 문자열 앞에 @ 사용해야합니다 나는 그것을 복사하지 않았다. 그래도 그것을 가져 주셔서 감사합니다. – Seril

답변

1

ActiveX 컨트롤을 사용하는 방법을 알고 있지만 Internet Explorer에서만 작동합니다.

체크 아웃이 post입니다.

+0

이것에 대해 살펴 보겠습니다. 우리는 (불행히도) 주로 IE를 사용하므로 이것이 유일한 방법이라면 이것이 가능할 것입니다.링크 주셔서 감사합니다! – Seril

+0

좋아, 그래서 이것이 내가 끝내는 길이다. 그리고 나는 내가 필요로하는 방식으로 일하도록했다. 다시 한 번 감사드립니다! – Seril

+0

도움이 되니 기쁩니다. :) –

0

그것은 소리 응용 프로그램을 시작하는 버튼을 사용하려면 사용하는 빠른 '는이 파일이 존재하는지 확인'이 고객 기기에서 프로그램을 시작하길 원합니다.

당신은 그렇게 할 수 없습니다.

동일한 도메인에 있고 Windows 인증을 사용하는 경우 가장 및 SysInternals PsExec.exe를 사용하여 프로세스를 원격으로 시작할 수 있어야합니다.

+0

확인. 그건 내가 조사 할 수있는 것이다. 그것은 단지 백그라운드에서 사용자로 프로그램을 시작하거나 프로그램이 실제로 사용자를 위해 팝업됩니까? 사용자를 위해 웹 사이트에서 일종의 클라이언트 응용 프로그램을 시작하고 싶다고 말합니다. – Seril

+0

잘 모르겠습니다. 시도 해봐. – SLaks

0

@Slaks가 쓴 내용 만 쓰고 있지만 더 많은 단어를 사용하고 있습니다.

웹 페이지를 탐색하면 다음과 같은 일이 발생합니다.

  1. 웹 브라우저 프로그램은 웹 서버 프로그램에 네트워크로 연결합니다.
  2. 웹 브라우저가 웹 서버에 HTTP 요청을 보냅니다.
  3. 웹 서버는 HTTP 요청의 정보를 처리합니다.
  4. 웹 서버는 HTTP 응답을 다시 브라우저로 보냅니다.
  5. 브라우저 프로그램은 HTTP 응답에 포함 된 HTML을 표시합니다.

위 코드는 위의 3 단계에서 실행되는 코드입니다.

이것은 원하는 방식으로 프로세스를 시작할 수없는 이유를 알 수있는 충분한 정보 여야하지만, 표시되지 않으면 알려주고 더 자세히 설명하겠습니다.

관련 문제