0

私は基本認証を使用してサーバーに接続しています。その後、次のコードを使用して Webview で URL を呼び出しています。

WebView.Source(new Uri("https:(//UrlHere"));  

Webview はログイン ウィンドウを表示しますが、既にログインしています。なぜこれが起こっているのですか? どうすればこれを防ぐことができますか?

サーバーへの認証方法:

   private async void HttpClientCall(object sender, RoutedEventArgs e)
{

    System.Diagnostics.Debug.WriteLine(this.GetType().Name + ": HTTPCLientCall entered");

    //System.Diagnostics.Debug.WriteLine("NetworkConnectivityLevel.InternetAccess: " + NetworkConnectivityLevel.InternetAccess);

    //use this, for checking the network connectivity
    System.Diagnostics.Debug.WriteLine("GetIsNetworkAvailable: " + System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable());

    //var msg = new Windows.UI.Popups.MessageDialog("GetIsNetworkAvailable: " + System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable());
    //msg.ShowAsync();


    HttpClient httpClient = new HttpClient();


    // Assign the authentication headers
    httpClient.DefaultRequestHeaders.Authorization = CreateBasicHeader("username", "password");
    System.Diagnostics.Debug.WriteLine("httpClient.DefaultRequestHeaders.Authorization: " + httpClient.DefaultRequestHeaders.Authorization);


    // Call out to the site
    HttpResponseMessage response = await httpClient.GetAsync("https://URLHere");
    System.Diagnostics.Debug.WriteLine("response: " + response);
    string responseAsString = await response.Content.ReadAsStringAsync();
    System.Diagnostics.Debug.WriteLine("response string:" + responseAsString);

    //WebViewP.Source = new Uri("https://URLHere");
}




public AuthenticationHeaderValue CreateBasicHeader(string username, string password)
{
    byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(username + ":" + password);

    String logindata = (username + ":" + password);
    System.Diagnostics.Debug.WriteLine("AuthenticationHeaderValue: " + new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)));

    return new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
}

それで、どうすればそれを解決できますか?

4

1 に答える 1