セキュリティアラートを無効にする方法” Webbrowserコントロールのウィンドウ

StackOverflow https://stackoverflow.com/questions/178578

  •  05-07-2019
  •  | 
  •  

質問

「信頼されていない証明書」を使用して、Webbrowserコントロールを使用してHTTPSサイトにログインしています。 しかし、このような標準的なウィンドウ" Security Alert"がポップアップ表示されます。信頼できない証明書について:

セキュリティ警告ウィンドウ

このウィンドウをタイトルで見つけて、 Alt + Y を送信して Yes を押す必要があります:

int iHandle = NativeWin32.FindWindow(null, "Security Alert");
NativeWin32.SetForegroundWindow(iHandle);
System.Windows.Forms.SendKeys.Send("Y%");

しかし、ユーザーはこのウィンドウのちらつきを見ることができます。

このアラートを無視するにはどうすればよいですか?
または、この「信頼できない証明書」を無効にします。 Webbrowserコントロールをチェックインしますか?

役に立ちましたか?

解決

これでうまくいくはずです:

public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
    return true;
}

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);

明らかに、証明書を盲目的に許可することはセキュリティ上のリスクです。注意してください。

他のヒント

わかりました、コードプロジェクトの記事がアップしました- http://www.codeprojectを参照してください。 com / KB / shell / WebBrowserControlDialogs.aspx これがお役に立てば幸いです。

証明書が信頼できる認証局からのものでない場合(プロンプトの最初のポイント)、問題のPCの信頼されたルート証明機関の下に証明書をインストールできます。

「証明書の表示」でこれを実行できます。

何らかの方法で、これは、すべての証明書を受け入れるコード変更を必要としないため、より簡単なソリューションになる可能性があります。ただし、アプリケーションを使用する場所には必ず証明書をインストールする必要があります。

ここでは、ソリューションに進みます。 基礎となるactiveXコンポーネントはそれまでnullなので、Browser_Navigatedイベントで実行します。

参照: https://social.msdn.microsoft.com/Forums/vstudio/en-US/4f686de1-8884-4a8d -8ec5-ae4eff8ce6db / new-wpf-webbrowser-how-do-i-suppress-script-errors?forum = wpf

         private void Browser_Navigating_1(object sender, NavigatingCancelEventArgs e)
        {
        HideScriptErrors(Browser,true);

        }

    public void HideScriptErrors(WebBrowser wb, bool Hide)
    {

        FieldInfo fiComWebBrowser = typeof(WebBrowser).GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);
        if (fiComWebBrowser == null) return;
        object objComWebBrowser = fiComWebBrowser.GetValue(wb);

        if (objComWebBrowser == null) return;

        objComWebBrowser.GetType().InvokeMember(
        "Silent", BindingFlags.SetProperty, null, objComWebBrowser, new object[] { Hide });

    }

WebBrowser.ScriptErrorsSuppressedプロパティをfalseに設定すると、これらのポップアップは表示されなくなりました

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top