C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: WebBrowserコントロールについて


(過去ログ 88 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■52638 / inTopicNo.1)  WebBrowserコントロールについて
  
□投稿者/ ひろこ (1回)-(2010/08/18(Wed) 19:08:50)

分類:[.NET 全般] 

WebBrowserコントロールを使用し特定のURLを表示しようと考えています。
この時、基本認証がある場合、下記の確認ダイアログが表示され、ユーザー名とパスワードを尋ねられます。

 「このサーバーは、ユーザー名とパスワードを安全ではない方法で送信することを要求しています (安全な接続を使わない基本的な認証)。」

予めHTTPヘッダにユーザー名とパスワードをセットしておき、確認ダイアログを表示させずに認証を行う事は可能でしょうか?
 (展示室のような場所で起動したいため、オペレータによる認証の作業を入れたくありません)

以上、よろしくお願い致します。

引用返信 編集キー/
■52640 / inTopicNo.2)  Re[1]: WebBrowserコントロールについて
□投稿者/ ひろこ (2回)-(2010/08/18(Wed) 19:38:42)
先ほどの件は、基本認証ではなく、ダイジェスト認証のようでした。

どなたかお分かりになる方ご教授願えないでしょうか。

※基本認証は下記のページを参考にできそうです。
 http://www.ken3.org/vba/backno/vba159.html

引用返信 編集キー/
■52647 / inTopicNo.3)  Re[1]: WebBrowserコントロールについて
□投稿者/ やじゅ (1704回)-(2010/08/18(Wed) 23:20:54)
やじゅ さんの Web サイト
No52638 (ひろこ さん) に返信
>  「このサーバーは、ユーザー名とパスワードを安全ではない方法で送信することを要求しています (安全な接続を使わない基本的な認証)。」
>
> 予めHTTPヘッダにユーザー名とパスワードをセットしておき、確認ダイアログを表示させずに認証を行う事は可能でしょうか?
>  (展示室のような場所で起動したいため、オペレータによる認証の作業を入れたくありません)

信頼済みサイトとして登録しても警告が出るのでしょうか?
http://www.kabegamikan.com/calendar/shinrai/
引用返信 編集キー/
■52673 / inTopicNo.4)  Re[2]: WebBrowserコントロールについて
□投稿者/ ひろこ (3回)-(2010/08/19(Thu) 19:25:47)
No52647 (やじゅ さん) に返信
> ■No52638 (ひろこ さん) に返信
>> 「このサーバーは、ユーザー名とパスワードを安全ではない方法で送信することを要求しています (安全な接続を使わない基本的な認証)。」
>>
>>予めHTTPヘッダにユーザー名とパスワードをセットしておき、確認ダイアログを表示させずに認証を行う事は可能でしょうか?
>> (展示室のような場所で起動したいため、オペレータによる認証の作業を入れたくありません)
>
> 信頼済みサイトとして登録しても警告が出るのでしょうか?
> http://www.kabegamikan.com/calendar/shinrai/

やじゅ様
ご返信ありがとうございます。
信頼済みサイトに登録してみたのですが、ダイアログが表示されます。
※表示されるのは警告ダイアログではなく、ユーザ名、パスワードを入力する認証画面になります。
(説明が悪く申し訳ありまえせん)

引用返信 編集キー/
■52686 / inTopicNo.5)  Re[3]: WebBrowserコントロールについて
□投稿者/ れい (955回)-(2010/08/20(Fri) 14:51:36)

Digest認証では、最初にサーバーからnonceを取得し、それとともにユーザー名とパスワードのハッシュ、ダイジェストを送らなければなりません。
nonceが無いといけませんので、初回アクセスからヘッダーにユーザー名とパスワードを容れることはできません。

一方、WebBrowserコントロールはサーバーからDigest認証が必要という返事が返ってくると
問題の確認メッセージを表示してしまいます。
それを防ぐ方法を私は知りません。
たぶん何かあると思いますが。

ですので、WebBrowserコントロール以外の手段でサーバーに接続し、nonceを取得したうえで、
ハッシュ化したユーザー名、パスワードをヘッダーとしてWebBrowserコントロールに渡せばできるはずですが、
リクエストのたびにnc(noncecount)を増やし、ダイジェストを変更する必要があります。

普通、ダイジェストはWebBrowserが自動で生成してくれますが、
手動でヘッダーを設定した場合は情報が足りないため生成できません。
毎回手動でダイジェストを生成し、ヘッダーを設定する必要があります。

できなくはないと思いますが、かなりめんどくさい実装になるでしょう。

認証が必要なページを
> (展示室のような場所で起動したいため、オペレータによる認証の作業を入れたくありません)
ということ自体が間違っているので、
認証を解除するのが先であろうと思います。


どうしても、というのであれば…。

nonceを取得するにはHttpWebRequest/Responseを使うとよいでしょう。
nonceはWWW-Authenticateヘッダーに入っています。
で、取得したnonceからハッシュを求める手法はRFC2617にあります。
ハッシュ等をAuthorizationヘッダーに含めてWebBrowserに渡します。

リクエストのたびにncを増やし、ダイジェストを更新するのを忘れないように。
また、.NetのDigest認証の実装にはバグがあります。
realmによっては認証できません。
realmが必要な場合、その対策も必要になります。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -