this articleによれば、私はSystem.Windows.Forms.WebBrowser
クラスを拡張してカスタムエラー処理を実装しました。主に、それは動作します。WebBrowserコントロールのカスタム401処理の実装
ブラウザに「401 Unauthorized」という応答が表示されると問題が発生します。そのような応答はWebBrowser
コントロールに標準のユーザー名/パスワードダイアログを表示させます。ダイアログがキャンセルされるまで、NavigateError
イベントは発生しません。
私は401応答をキャプチャして自分のカスタム方法で処理するために何ができますか?
NavigateError
イベントをキャプチャして自分のやり方を処理するなど、できることがあると仮定しましたが、何も見たことがありません。
編集:解決策が見つかりました!
重要な手順は次のとおりです。
WebBrowserコントロールが最初は非セキュアページにナビゲートしなければならない 1(「について:空白の」使用される一般的なURLである)KB 320153
2.ホストを避けるためには、 WebBrowserコントロールの場合、IOleClientSite
,IServiceProvider
、およびIAuthenticate
を実装する必要があります。
は、IAuthenticate
の実装でIAuthenticate
サービス要求を処理する必要があり、他のすべてのサービス要求はINET_E_DEFAULT_ACTION
応答で処理できます。
4. IAuthenticate.Authenticate
は、カスタム認証ハンドラです。
これは、私が探していた情報とほぼ同じです。ありがとう!私は今、最初のものを除いて、すべての認証要求に対してカスタム処理を動作させました。私が行方不明になっていることが分かっていますか? – Task
サーバーからの応答ヘッダーを質問に追加できますか?IEまたはWebブラウザのホストを実行しているときに、フィドラーを使用して応答を収集できます。 –
それを見つけた! IEの既知のバグでは、すべてを説明した記事には小さな参考文献がありました。将来の訪問者にとって重要なステップを強調する質問にいくつかの注釈を追加しました。あなたが知っている、誰かがある時点で私がしなければならない同じ種類のクレイジーなことをしたいと仮定します。 8) – Task