私は小さなWebアプリケーションを構築しています。私のアプリケーションでは、セッションオブジェクトを使ってサーバーへの呼び出しを介して情報を格納しています。これはFirefox \ Chrome \ IEでかなりうまく動作しますが、Safariで失敗するようです。 Safariでは、セッションでは値が格納されていることを忘れてしまいます。Safariセッションは、常にasp.netのセッション変数を忘れてしまいました。mvc 3
どうしてですか?何ができますか?
私は小さなWebアプリケーションを構築しています。私のアプリケーションでは、セッションオブジェクトを使ってサーバーへの呼び出しを介して情報を格納しています。これはFirefox \ Chrome \ IEでかなりうまく動作しますが、Safariで失敗するようです。 Safariでは、セッションでは値が格納されていることを忘れてしまいます。Safariセッションは、常にasp.netのセッション変数を忘れてしまいました。mvc 3
どうしてですか?何ができますか?
セッションは、Cookieに格納されたIDに基づいています。サーバーはこのIDを使用してサーバー上のセッションにリンクします。クッキーがオフになっている可能性が高いです。フィドラーをロードするか、トレースをオンにして、どのクッキーが送信されているかを確認してください。ブラウザーのprobがオフになっていない場合は、aspnetsessionidが表示されます。
セッションの全体のアイデアは、値がサーバー側に格納されているということです。 Safariはおそらくサーバーに何かを忘れさせることはできません。値がSessionに保存されなかったか、SafariがSession値をレンダリングできませんでした。
セッションに値を渡すときとセッションから値を取得しようとしているときに、セッションが正しい値を保持していることをデバッガを使って確認しようとしています。
あなたはまたこっち見てみたいことがあります。すべてのリダイレクトがCookieを確立しているとき、彼らはサードパーティのCookieとして表示され、あなたのサーバ - との問題を引き起こす可能性が送られた場合Facebook API and Safari
は、のように見えます側。
Safariの設定でCookieが許可されていない場合、これは失敗します。私はちょうどアイフォンのWebアプリケーションの私の書き込みで同じ問題を抱えていた。私はクッキーを有効にし、すべて正常に動作しました。
この回答は間違っていますが、問題は明らかにCookieを許可しないSafariに関連しています。しかし、ダウンボートするのではなく、あなたの答えを修正するか、投稿を削除するか、あなたが思っているものが何であれ、編集するチャンスを与えます – musefan