0

私の mvc3 アプリケーションでは、各ユーザーのデータをセッションに保存します。

HttpContext.Current.Session["UserName"] = "Jon";

問題は Safari ブラウザにあります。デフォルト設定は「サードパーティと広告主からの Cookie をブロックする」です。したがって、セッションは保存されません。私は解決策を見つけました:

var ticket = new FormsAuthenticationTicket(
                1,
                "currentUser",
                DateTime.Now,
                DateTime.Now.AddMinutes(30),
                false,
                null);

                string encryptedTicket = FormsAuthentication.Encrypt(ticket);
                var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);

                this.Response.Cookies.Add(cookie);

しかし、このソリューションはローカルホストでのみ機能し、サーバーでは機能しません...この問題の代替ソリューションはありますか? または、私のソリューションがサーバー上で機能しない理由を説明できますか?

4

1 に答える 1

0

次のように、Cookie の Domain プロパティを、作業サーバーがあるドメインの名前と正確に一致するように設定してみてください。

var cookie = new HttpCookie(...
cookie.Domain = "Microsoft.com";

これを行うと、Cookie は (サードパーティの Cookie ではなく) ファーストパーティの Cookie になります。

于 2012-05-31T10:29:51.097 に答える