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