2

IE8で自分のサイトへのログインが一貫して機能しないという問題が発生しました。Firefox / Chrome / Safariでは正常に動作しますが、IE8では正常に動作しません。

最初のログインでは、すべてが正常です。ログアウトして再度ログインしようとすると、通常はしばらく失敗します。認証後にログインページにリダイレクトされることになります。

したがって、認証は成功し、trueを返しますが、IE8は、以下を返すことによって設定したセッションIDの新しい値を受け入れていないようです。

Set-Cookie SESSIONID = ........; パス=/

応答ヘッダー内。しかし、明らかにこれはクリアキャッシュで機能し、問題なく動作します。しかし、すでにそこにあるとリセットに失敗するため、認証して新しいページに移動しようとすると、これがブラウザから送信されている古いセッションIDであることがわかり、ログインページにリダイレクトされます。

これを本当に解決するものはここや他の場所では見つかりませんでした(キャッシュをクリアする以外に)。IE8 Cookieの問題へのほとんどの参照は、言語/フレームワーク固有であり、この問題に答えません。

これを機能させるためにset-cookieで行う必要がある特別なことはありますか?

アップデート:

Cookieを受け入れる前にプロンプ​​トを表示するようにIE8を設定しました。ログインが正常に機能すると、期待どおりにプロンプ​​トが表示されます。それが機能しないときは、cookieを除いてプロンプトも表示されません。

更新2:

cookieはajax呼び出しの後に設定されることが期待されていることを述べておかなければなりません:

$ .get(authenticate_url、....)

応答を要求するURLは、セッションIDを設定するヘッダーを返します。その後、コールバック関数で、ユーザーはメインページにリダイレクトされます(ログインが成功した場合)。

4

2 に答える 2

1

との両方にCookieを設定すると、同様の症状が発生www.example.comexample.comます。ドメインが明示的に設定されていない場合は、セッションCookieが両方に設定されます。

ただし、上位レベルのドメインCookieは下位ドメインよりも優先されます。したがって、www.example.comCookieを設定しようとしたが、example.comすでに設定している場合、example.comCookieはそのまま残り、を申請し続けますwww.example.com

この問題に取り組むには2つの方法があります。1つは、サブドメインがある場合とない場合の両方にアクセスを許可しないことwwwです。一方を他方にリダイレクトします。2つ目は、Cookieドメインを明示的に設定して、2つのバージョンが存在しないようにすることです。

もちろん、それは実際にはあなたの問題ではないかもしれません。実験して調べてください:)

于 2011-03-31T17:03:38.557 に答える
1

ファースト パーティの Cookie ですか、それともサード パーティの Cookie ですか。後者の場合は、P3P ヘッダーを送信していることを確認してください。HTTPOnly 属性を設定していますか? Cookie のドメインは常に同じですか? たとえば、「example.com」にアクセスしたときに Cookie を設定し、「www.example.com」から変更しようとすると、問題が発生します。

于 2011-03-31T02:23:44.583 に答える