2016-07-06 4 views
2

개발중인 IoT 핵심 응용 프로그램의 원격 Apache 웹 서버에서 몇 가지 웹 페이지를 표시해야합니다. 나는 WebView 클래스 메서드를 사용했습니다. 보호되지 않은 페이지에 대해 .Navigate() 및 정말 깔끔하게 작동합니다. 그러나, 내 프로젝트의 경우 웹 서버 (username + password)에 먼저 로그인 한 다음 페이지에서 정보를 검색해야하지만 WebView 클래스를 사용하여이를 수행하는 방법을 알지 못합니다. 나는 우둔 해.UWP WebView - 웹 서버 콘텐츠를 표시 할 때 웹 서버 로그인 관련 문제

WebBrowser 클래스 Navigate()를 사용하여 자격 증명을 64 기본 인코딩 문자열로 보내는 솔루션을 찾았지만 WebView의 Navigate()는 하나의 인수, URI 만 허용합니다. WebBrowser 클래스를 찾을 수 없습니다.


나는 이미 URI에 사용자 이름/암호를 포함하려했지만 제대로 작동하지 않습니다와 나는 그것은 너무 그것을 할 수있는 좋은 생각이 아니다 알고 있어요.

WebView를 사용하여이를 달성 할 수 있습니까? 제안/아이디어가 있습니까?

는 어떤 도움을


편집 감사 : 나는 비슷한 문제를 가진 사람에게, 나는 케이스에 게시하도록하겠습니다가 도움이 될 수 있습니다 내 문제가 잘 작동 해결책을 발견했습니다.

Uri req_uri = new Uri(uri_list[i]); 

HttpBaseProtocolFilter filter = new HttpBaseProtocolFilter(); 
filter.ServerCredential = new PasswordCredential(req_uri.ToString(), "username", "password"); 

HttpCookieCollection cookiejar = filter.CookieManager.GetCookies(req_uri); 
if (cookiejar.Count > 0) 
{ 
    foreach (HttpCookie cookie in cookiejar) 
    { 
     filter.CookieManager.SetCookie(cookie); 
    } 

} 
Windows.Web.Http.HttpClient client = new Windows.Web.Http.HttpClient(filter); 


    Windows.Web.Http.HttpRequestMessage http_req = new Windows.Web.Http.HttpRequestMessage(); 

    http_req.Method = Windows.Web.Http.HttpMethod.Get; 
    http_req.RequestUri = req_uri; 
    var clientResponse = client.GetAsync(req_uri); 

    webView.NavigateWithHttpRequestMessage(http_req); 

    http_req.Dispose(); 
    client.Dispose(); 

답변

2

당신은 날 수 당신이 HttpRequestMessage을 사용하여 페이지를 탐색 할 수 있도록 할 것 NavigateWithHttpRequestMessage를 사용할 수 있습니다.

HttpClient을 사용하여 대역 외 인증을 수행하고 쿠키 및 인증 헤더를 얻은 다음 HttpRequestMessage을 빌드 할 때 사용합니다.

Here 'SA 원격 웹 서버가 HTTP 기본 인증을 지원하는 경우는과 같이 URL에 자격 증명을 전달 할 수

+0

실제로 해결하기 위해 관리했습니다 UWP Windows.Web.Http 네임 스페이스에 대해 HttpClientHandler로 작동하고 로그인에 대해 (ServerCredential) 내에서 인증 자격 증명을 보유 할 수있는 HttpBaseProtocolFilter의 사용과 함께 여러 가지 시도를 한 후이를 시도합니다. 매우 감사. –

-2

에 도움이 될 것입니다 StackOverflow의 :

https://Username:[email protected]/index.html 
+1

그래도하지 마십시오. Basic Auth는 실제로 안전하지 않습니다. – RubberDuck

+0

그가 말한 것은 말할 것도없고 그는 이미 그것을 시도했다. – AlexDrenea