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