2009-09-10 4 views
1

내 WindowsForms 응용 프로그램이 인터넷에 액세스해야하지만 WebRequest를 열려고하면 응용 프로그램이 충돌합니다. 예를 들어, 간단한 폴더 (예 : 내 문서)에서 응용 프로그램을 실행할 때 작동하지만 프로그램 파일 폴더에서 실행하면 나타났습니다. 문제가 UAC 권한에 있다는 것을 알고 있지만 "프로그램 파일"에서 실행중인 응용 프로그램에서 WebRequest를 열 수없는 이유를 모르겠습니다.보안 및 UAC for .NET

UAC 권한 상승 (매니페스트 사용)없이 "프로그램 파일"에서 WebResquest를 여는 방법은 무엇입니까?

답변

1

앱을 실행중인 로컬 폴더에 아무 것도 저장하지 않으시겠습니까?

앱이 Program Files 아래의 폴더에서 실행 중이고 위치에있는 디렉토리에 쓰기를 시도하면 실패 할 수 있습니다. Program Files 폴더는 UAC가 쓰기 위해 필요한 장소 중 하나입니다 (제 생각 엔).

+0

조금 늦었지만 문제가 있습니다. –

+0

죄송합니다. 죄송합니다! – Rich

1

간단한 명령 줄 응용 프로그램으로 테스트했는데 제대로 작동하는 것 같습니다. 그것은 "프로그램 파일"내부에서 실행 중이며 UAC가 활성화되어 있고 Vista SP2가 실행 중입니다.

WebRequest req = WebRequest.Create("http://www.google.com"); 
using(WebResponse resp = req.GetResponse()) 
{ 
    using(Stream str = resp.GetResponseStream()) 
    { 
     using(StreamReader sr = new StreamReader(str)) 
     { 
      string data = sr.ReadToEnd(); 
      Console.WriteLine("SUCCESS: " + data.Length + "bytes downloaded"); 
      Console.WriteLine("SAMPLE: " + data.Substring(0,100)); 
     } 
    } 
} 

문제에 대해 더 자세히 설명해 주시겠습니까? 어쩌면 일부 소스 코드를 게시 할 수 있습니까?