0

私のmvc3facebookアプリケーションでは、ログインステータス=接続されているかどうかをユーザーに検出するか、Facebookログインポップアップでユーザーにログインさせます。ログイン後、ユーザーのFacebookIDをセッションに保存します。

HttpContext.Current.Session["CurrentUserFacebookId"] = FacebookId;

問題はサファリブラウザにあります。サファリのデフォルト設定は、「サードパーティおよび広告主からのCookieをブロックする」です。したがって、すべてのアクションがセッションをチェックするため、セッションは保存されず、ユーザーは私のアプリケーションを使用できません。この問題を解決する方法は?ありがとうございます。

4

2 に答える 2

1

単純なP3Pポリシーでヘッダーを設定することで、これを試すことができます

P3P:CP = "IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"

またはPHPの場合:

header('P3P:CP = "IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

またはASP.NETの場合:

HttpContext.Current.Response.AddHeader( "p3p"、 "CP = \" "IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT \" "")

しかし、Safari 5.5.1以降では、このトリックは機能しなくなったと思います。Safari 5.5.1以降での唯一の方法は、[設定]->[プライバシー]の[Cookieをブロックする]を[しない]に設定して、サードパーティのCookie/セッションを有効にすることだと思います。

于 2012-08-20T07:49:57.343 に答える
0

多分それはこの答えに遅れています。

ただし、次のようにweb.configを入力してみてください: "forms loginUrl ="〜/ Account / Login "timeout =" 2880 " cookieless =" UseCookies " "

認証タグの内部。that(太字部分)はCookieを有効にし、私のために機能します。

おそらくそれは最善の解決策ではありませんが、サファリで機能します。ユーザーが設定を操作しないようにします。

于 2013-09-09T18:42:46.417 に答える