2013-01-07 1 views
0

특정 URL을 입력으로 받아들이고 모든 텍스트 인 웹 페이지를 문자열로로드하는 C# 응용 프로그램을 빌드해야합니다. 문제는이 URL이 페이지를로드하기 위해 기본 인증을 요구한다는 것입니다. 자격 증명을 앱에 하드 코딩해야합니다. 사용자가 직접 입력하게 할 수는 없습니다. 나는 URL의 일부로 사용자 이름 & p/w를 전달하는 것이 가능하다고 생각하지 않습니다. 이걸 C#으로 자동으로 처리 할 수있는 방법이 있습니까? 여기C#의 기본 인증을 통해 URL에 자동으로 인증

는 인증이 필요하지 않은 경우 아주 기본적인 측면에서, 나는 페이지를로드 할 방법입니다 :

static void Main(string[] args) 
{ 
    if (args.Length == 0) 
     return; 

    WebClient webclient = new WebClient(); 
    string output = webclient.DownloadString(args[0]); 
    Console.WriteLine(output); 
} 
+1

어떤 종류의 인증입니까? 일반 HTTP 인증 인 경우 URL 인증을 항상 사용하고 사용자 이름/비밀번호를 URL에 전달할 수 있습니다. Like : http : // username : [email protected] – Botonomous

+1

어떤 기술, WCF, ASP.NET, 데스크탑 ??? – Tigran

+0

- 기본 인증을 요구하지만 username : password @ [URL]이 작동하지 않는다고 생각합니다. - .NET에서 앱을 작성 중입니다. 웹 서버는 McAfee ePolicy Orchestrator입니다 (Apache/Tomcat이라고 생각합니다). –

답변

7

Basic authentication가 웹 서버에 요청에서 단지 헤더입니다. 올바른 값과 함께 Authorization 헤더를 추가하면 정상입니다. 당신이 기본 인증
QWxhZGRpbjpvcGVuIHNlc2FtZQ==이름의 Base64로 표현 사용하려는 때문에

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== 

Basic이 필요합니다 : 다음

해당 헤더의 예입니다,이 경우 비밀번호Aladdin:open sesame

WebClient 클래스를 사용하는 경우 해당 헤더를 직접 쓸 필요는 없습니다. 먼저 Credentials 속성을 사용할 수 있습니다. DownloadString으로 전화 :

webclient.Credentials = new NetworkCredential(userName, password); 
+0

감사합니다. - 어디로 가는지 보여주는 코드 샘플이 있습니까? –

+0

@MikeBruno : 웹 사이트에 액세스하는 방법에 따라 달라집니다 ... –

+0

기본적으로 내가하려는 일을 보여주는 샘플 코드로 제 질문을 업데이트했습니다. –

관련 문제