- - PR -
HttpWebRequestにCookieを設定する
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-13 23:32
いつもお世話になっております。
認証の仕組みにCookieでチケットを発行するためCookieについて調査し なんとか実装できました。 ところが調査中に "最初のリクエスト時"にクライアント(VB.NET)でCookieに値をセットし サーバ(JAVA)でCookieの値を取得しようとしましたがサーバで Cookie[] cookies = null; cookies = リクエスト.getCookies(); とするとcookiesはnullで値が取得できません。 VB.NETソースです。 ------------------------------------------------------ '変数宣言 Dim req As HttpWebRequest Dim cookies as CookieCollection Dim cookie as Cookie 'ネットワーク設定 req = CType(WebRequest.Create("URL"), HttpWebRequest) 'CookieConteinerインスタンス作成 req.CookieContainer = New CookieContainer() 'Cookieに格納する cookies = New CookieCollection() cookie = New Cookie("Test", "test") cookie.Domain = "ドメイン" cookies.Add(cookie) 'リクエストにCookieを設定する req.CookieContainer.Add(cookies) ------------------------------------------------------ Cookieのプロパティ設定が間違っているのでしょうか。 それとも私のやろうとしていることはできないのでしょうか。 勉強のためにもはっきりしたいので宜しくお願いします。 | ||||||||||||
|
投稿日時: 2004-03-15 18:23
詳しくはないのですが、記述に2〜3疑問があったので:
1.「サーバ」と「クライアント」が、それぞれを何をするか、わかりません 2.Cookieは「サーバ」が設定するものだと思っていたのですが、 クライアントでも設定できるのですか? 3.「最初は」ということは、「2回目以降」は取得できるのでしょうか 3−1.取得できるのなら、その値はどこで設定したものでしょう? | ||||||||||||
|
投稿日時: 2004-03-16 18:06
Jittaさんご返答ありがとうございました
遅くなりすみませんでした。 先ず結果をご報告致しますします。解決致しました。 CookieのDomainプロパティのドメインを間違えておりました。
@クライアントでCookieにユーザ・パスワード情報をつけてサーバにリクエスト ↓ Aサーバでユーザ・パスワード情報を元に認証チケットを発行しCookieに設定 ↓ BクライアントでCookieを取得しクライアントのメモリ上に格納 ↓ C二回目以降のリクエストはクライアントのメモリ上のCookieをrequestに設定 ↓ DサーバでCookieの認証チケットを元にチェック ・ ・ ・ となります。 Cookieをクライアントのメモリ上に格納しているのは ブラウザを使用していないからです。 今は@のユーザ・パスワードをXMLで渡していますが @でrequestにCookieをつけて渡せるか調べていました。 "初回"とは@のことです。
MSDNでHttpWebRequestのCookieContainerプロパティが "要求に関連付けられているCookieを取得または設定します。" ということなので、Cookieプロパティを設定し(前述ソース) CookieContaierに設定すれば可能なのかと思い調査していました。
最初のリクエストに対してサーバでレスポンスにCookieを設定していますので取得できます。 ご返答が遅くなり大変申し訳ございませんでした。 |
1