UWP WebView – Problèmes de connexion au serveur Web lors de l’affichage du contenu du serveur Web

Je dois afficher quelques pages Web d’un serveur Web Apache distant pour l’application IoT Core que je développe. J’ai utilisé la méthode de classe WebView .Navigate () pour les pages non protégées et ça marche vraiment bien. Cependant, pour mon projet, je dois d’abord me connecter au serveur Web (nom d’utilisateur + mot de passe), puis récupérer les informations à partir des pages, mais je ne sais pas comment procéder en utilisant la classe WebView. Je suis désemparé.

J’ai trouvé une solution qui utilise la classe WebBrowser Navigate (), en envoyant les informations d’identification sous la forme d’une chaîne codée 64, mais Navigate () de WebView n’autorise qu’un seul argument, l’URI, et rien d’autre. Je ne peux pas sembler trouver la classe WebBrowser non plus.


J’ai déjà essayé d’intégrer le nom d’utilisateur / mot de passe dans l’URI mais cela ne fonctionne pas correctement et je sais que ce n’est pas une bonne idée de le faire.

Est-il possible d’y parvenir en utilisant WebView? Des suggestions / idées?

Toute aide appréciée


Edit: J’ai trouvé une solution qui fonctionne bien pour mon problème, je la publie au cas où cela pourrait aider quelqu’un ayant des problèmes similaires.

Uri req_uri = new Uri(uri_list[i]); HttpBaseProtocolFilter filter = new HttpBaseProtocolFilter(); filter.ServerCredential = new PasswordCredential(req_uri.ToSsortingng(), "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(); 

Vous pourriez peut-être utiliser le NavigateWithHttpRequestMessage qui vous permettrait de naviguer vers une page en utilisant un HttpRequestMessage .

Vous devrez toujours vous authentifier hors bande, en utilisant HttpClient , obtenir les cookies et les en-têtes d’authentification, puis les utiliser lorsque vous construisez votre HttpRequestMessage .

Voici un StackOverflow qui devrait vous aider

Si votre serveur Web distant prend en charge l’authentification HTTP Basic, vous pouvez transmettre les informations d’identification dans l’URL comme suit:

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