2013-04-29 3 views
0

아래 코드는 IIS 기본 인증 사이트에 요청을 게시합니다. 그리고 Windows 자격 증명을 사용하여 사이트에 성공적으로 로그인하십시오. 하지만 내가해야 할 일은 target = "null"을 가진 새로운 하이퍼 링크를 여는 것과 같이 브라우저에서 웹 사이트를 여는 것으로 변환하는 것입니다.기본 승인 사이트에 자격 증명을 게시하고 새 브라우저에서 링크를여십시오. 응답 대신 URL 열기

요약하면 WebRequest를 새 브라우저 탭에 게시하는 방법은 무엇입니까? 또는 CredentialCache를 새 URL 요청에 어떻게 보냅니 까?

var request = WebRequest.Create(testURL); 
    SetBasicAuthHeader(request, "username", "password", testURL); 

    var response = request.GetResponse(); 

} 

public void SetBasicAuthHeader(WebRequest request, String userName, String userPassword, String testURL) 
{ 

    CredentialCache credentialCache = new CredentialCache(); 
    credentialCache.Add(new System.Uri(testURL), "Basic", new NetworkCredential(userName, userPassword, "domain")); 
    request.Credentials = credentialCache; 
    request.PreAuthenticate = true; 

} 
+0

헤더는 clien 요청에서 가져와야하며 간단한 링크를 통해 이러한 작업을 수행 할 방법이 없습니다. 시도 할 수도있는 것은 jQuery 또는 이와 유사한 것을 사용하고 사용자 정의 권한 헤더로 GET을 실행하는 것이지만,이 경우에는 자격증 명을 클라이언트에 보내야하므로 보안상의 문제가 될 수 있습니다. – tucaz

답변

0

짧은 답변은 새 탭에 응답을 보낼 수 없다는 것입니다. 당신이하려고하는 것에 대한 문제는 당신이 서버에서 구축 한 요청/응답이 기술적으로 서버가 아니라 클라이언트가된다는 것입니다. 따라서 요청을 작성하고 방금 인증 한 URL로 사용자를 리디렉션하더라도 인증은 서버에 적용되었으므로 클라이언트는 여전히 인증되지 않은 것으로 간주됩니다.

관련 문제