掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ダイジェスト認証をするには (ID:39733)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
〈 マコトの部屋? 〉 真琴:「おかしいな…、Postでは何でこんなコトが…、どうして?」 春子:「ん? 何を悩んでるのかな?」 真琴:「それが…、Indyで Digest認証なんだけど…、Getならば なんとかコレでうまくいったのよ、でもPostではダメなの」 procedure TForm1.IdHTTP1SelectAuthorization(Sender: TObject; var AuthenticationClass: TIdAuthenticationClass; AuthInfo: TIdHeaderList); begin // Digest認証が必要な場合には自動的にセットされるので指定しなくてもOK AuthenticationClass := TIdDigestAuthentication; end; procedure TForm1.IdHTTP1Authorization(Sender: TObject; Authentication: TIdAuthentication; var Handled: Boolean); begin // 1回目のアクセスで Digest認証が必要な場合、このイベントハンドラが呼ばれるので、 // 認証用の Username, Password などをセット Authentication.Username := {ユーザー名}; Authentication.Password := {パスワード}; TIdDigestAuthentication(Authentication).Uri := TIdHTTP(Sender).Request.URL; TIdDigestAuthentication(Authentication).Method := TIdHTTP(Sender).Request.Method; Handled := True; end; procedure TForm1.Button1Click(Sender: TObject); var sURL, s: string; begin sURL := {Digest認証するページURL}; IdHTTP1.Request.Username := ''; IdHTTP1.Request.Password := ''; s := IdHTTP1.Get(sURL); // 最初は認証なしで1回目のアクセス s := IdHTTP1.Get(sURL); // Digest認証付きで2回目のアクセス Memo1.Text := s; end; 春子:「そのやり方で、Postでは認証できなかったの? 試した場所はドコ?」 真琴:「そう、Postの場合はダメ、試した場所はココ、そのDigest認証の解説を何度も読んで、ヘッダのパラメータを色々変えたりして試してたの、そうしたら…」 http://x68000.q-e-d.net/~68user/net/http-auth-2.html (Digest認証の解説ページ) Digest 認証の例: http://X68000.q-e-d.net/~68user/net/sample/http-auth-digest/secret.html (ユーザ名: hoge、パスワード: fuga で閲覧できます) 春子:「ナニか分かったのかな?」 真琴:「うん、1回目のPostのあとで、すぐに2回目の認証用のPostをすると全然ダメだけど…」 春子:「だけど?」 真琴:「2回目のPostをする前に15秒以上待つと認証が出来るってコトを偶然見つけたの」 春子:「あら、そうなの? 15秒間待つとPostでも認証OK? じゃぁ それで解決ね、良かったじゃない」 真琴:「えー、ちっとも良くないよ、だって、それって変よね?」 春子:「まぁね、確かに変かもしれないけど」 真琴:「絶対オカシイよ、なんで15秒も待たなくちゃいけないの? これじゃ まだ解決になってないよ」 春子:「ふ〜ん、ナルホドね、今はそれで悩んでたのかぁ…、ところで、indy10?」 真琴:「そう、Indy10.550、…ねぇ、ハルコさん、ナニか知ってるの? 知ってたら教えてよ」 春子:「でも悩んでイロイロと調べたおかげで realm や nonce など、Digest認証の仕組みを詳しく勉強出来たんじゃない?」 真琴:「それはそうだけど…」 春子:「じゃぁ、あと少し、IdHTTP.HTTPOptions の hoInProcessAuth について調べてごらん? きっと幸せになれると思うよ」 真琴:「え? hoInProcessAuth? なんのオプション? よく分からないけど、じゃぁ試しに True に…」 春子:「どうかな?」 真琴:「あっ、バッチリ!! GetもPostも 1回目で認証が出来ちゃう、 そうかぁ、コレだったのね」 春子:「そのOptionを付けると Indyが勝手に認証用の再アクセスをしてくれるの、どう?幸せになれた?」 真琴:「うん、ありがとう、ハルコさん、 …あれ? だけどアタシ、何でハルコさんと話をしてるの?」 春子:「なによ、さっきからずっと話してたのに、今更それはないでしょ?」 真琴:「でも、ハルコさんは別の宇宙へ行って、高校生になってるハズでは? 一体いつ戻ってきたの?」 春子:「え? その奇想天外な話は何なの? アタシはどこにも行ってないよ?」 真琴:「そんな…、だって…」 〈 ダイヤモンドヘッド 1階 〉 裕子:「明けましておめでとうございまーす、…マコトは?」 勝爺:「おう、おめでとう、えっとマコトは…まだ2階の自分の部屋かな、寝てたら起こしてくれねぇか?」 裕子:「えー? まだ寝てるの?」 〈 ダイヤモンドヘッド 2階 〉 裕子:《トントントン》「マコトー、起きてるー? いっしょに初詣でに行こうよ、マコトー」 真琴:「…ん? あ〜ヘンな夢をみてた…、えっ? もうこんな時間」
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.