문제

내가 있는 페이지에서(서버)를 사용하여 호출 NTLM 자격 증명입니다.의 일부 해당 페이지의 작업을 호출하는 HTML 페이지에서(서버 B)와 프록시에 그것을 다시 클라이언트입니다.(방화벽에 액세스할 수 있습니다,하지만 B.사용자는 정상적으로 접근할 수 있도록 모두에 서버에 있습니다.).서버 B 은 또한 열려있는 익명 액세스,그래서 나는 자격 증명을 제공해야 합니다.

면 나는 현재 어떤 정보(당으로 연결된 코드),그것은 작동하지만 이상적으로 나는 echo 자격을 받았습니다.aspx 페이지입니다.는 몇 가지 방법이 있을 얻을 사람들 NetworkCredentials 그래서 나는 그들을 전달할 수 있습니까?

protected void Page_Load(object sender, EventArgs e) { 
    Response.Clear(); 
    WebClient proxyFile = new WebClient(); 
    CredentialCache cc = new CredentialCache(); 
    cc.Add(new Uri("http://serverB/"), "NTLM", 
        new NetworkCredential("userName", "password", "domain")); 
    proxyFile.Credentials = cc; 

    Stream proxyStream = proxyFile.OpenRead("http://serverB/Content/webPage.html"); 
    int i; 
    do { 
        i = proxyStream.ReadByte(); 
        if (i != -1) { 
            Response.OutputStream.WriteByte((byte)i); 
        } 
    } while (i != -1); 
    Response.End(); 
} 
도움이 되었습니까?

해결책

할 수 있는 확실히 얻 로그인 발신자의 이름을,하지만 암호입니다.NTLM 사용하/응답 메커니즘,그래서 비밀번호가 전송 되지 않습니다.귀하의 서버 액세스할 수 있어야 합니다 암호 해당하는(hash)을 형성하기 위해 도전하고 확인 응답하지만,경우에도 당신은 그것의 보류를 얻을 수 있습니다 암호 에 해당하는 것은 당신에게 아무 소용이에서 형성하기 위해 노력하고 자격 증명되는 것이 허용하여 서버 B

는 경우에 당신은 설정할 수 있습니다 가장으로서 설명하는 또 다른 답변도 하지 않는 반드시 얻을 당신은 당신이 무엇을 원합니다.기본적으로 가장하는 서버 프로세스가 허용되지 않습을 전송의 정체성을 다른 서버입니다.는 두 번째 힙합으로 알려져 있는 위임과 구성되어야 합 명시적으로 서버에서 관여한(그리고/또는 Active Directory).

외부터 위임을 나는 생각한 귀하의 옵션만을 유지하는 것이 데이터베이스의 자격 증명하는 서버에 액세스할 수 있고 현재 서버 B는 건물에서는 안전한 방법으로는 미묘한 시간이 많이 소요되는 과정이다.다른 한편으로,이유는 대표단은 기본적으로 사용되지 않습니다.로그인할 때 서버에,나는 그것을 원하를 사용할 수 있는 내 정체성에 대한 액세스하는 다른 서버?대표단은 간단한 옵션을 위해 당신에,하지만 당신이해야 할 필요가 있는 서버할 수 없는 손상을 무책임한 것으로 사용자의 정체성입니다.

다른 팁

page.user는 페이지가 실행중인 사용자의 보안 원장을 얻을 수 있습니다.

거기에서 당신은 그것을 알아낼 수 있어야합니다.

시나리오에서 발신자 신원을 가장 할 수 있습니까? 그렇게하면 자격 증명을 따라 전달할 필요조차 없습니다.

<authentication mode="Windows" />
<identity impersonate="true" />

서버 A의 web.config에서는 물론 서버 A의 경우를 원하지 않을 수도 있으므로 상황에 따라 달라집니다. 그러나 가능하면 사용자 지정 코드없이 문제를 해결할 수 있습니다.

그녀는 사칭을위한 링크입니다. http://msdn.microsoft.com/en-us/library/ms998351.aspx#paght000023_impersonatingorigcaller

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top