1

ヘルプのためにデスクトップ アプリケーションからリンクしたいナレッジ ベースがあります。

デフォルトの Web ブラウザーでこれを開こうとしましたが、.htaccess 資格情報が設定されているため、プロンプトが表示されます。アプリケーション用に 1 つしか設定していないため、ユーザー名とパスワードを入力する必要はありません。

これにより、毎回プロンプトが表示されます。

Dim url = "http://mysite.com/index.php?/category/40/0/10/"
Process.Start(url)

IE9 ではサポートされていないため、ユーザー名とパスワードを URL に追加することはできません。

http://username:pass@url.com <-- 新しいブラウザではサポートされていません

Web ブラウザー コントロールを使用しようとしましたが、現在のものではなく IE4 を使用しています。これにより、正しく表示されません。

Dim hdr = "Authorization: Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes("myuser" + ":" + "password")) + System.Environment.NewLine
WebBrowser1.Navigate(Url, Nothing, Nothing, hdr)

IE9 を強制するようにレジストリ設定を試みましたが、動作させることができませんでした。その上、私が読んだことから、彼らが IE9 を持っていなくても問題ありません。

これを回避する方法について何か提案はありますか? アプリケーションから安全な Web ページを開きたいだけです。

ありがとう!

4

1 に答える 1

1

さらにコーディングする前に、基本認証がどのように機能するかを検索して確認できます。HttpAnalyzerまたはその他のツールを使用して、ブラウザーが要求のヘッダーでユーザー名とパスワードを送信する方法を確認できます。ヘッダーの認証部分を使用するだけです。新しいリクエストを作成するか、それを実行するための準備が整ったフレームワークを見つける必要があります。

基本認証は通常、2つの要求/応答から行われます。ブラウザは最初は認証について何も知りませんが、サーバーは401応答コードで彼をアナウンスします。これは、ブラウザが認証を提供する必要があることを意味します。今後、すべてのリクエストには、ユーザー名とパスワードを含むBase64を使用してエンコードされた認証ヘッダーがあります。

于 2012-06-04T15:30:33.893 に答える