c# – 创建一个使用safari,chrome失败的cookie,即使用FF
发布时间:2020-12-16 01:30:48 所属栏目:百科 来源:网络整理
导读:我们使用以下代码来创建安全cookie.在Staging环境中一切正常,但在生产环境中,以下代码无法在Safari,Chrome或IE中创建cookie,但它确实在Firefox中成功创建了cookie.你们认为我遗失或错在这里的任何事情? public static void SetAuthenticationCookie(CustomI
我们使用以下代码来创建安全cookie.在Staging环境中一切正常,但在生产环境中,以下代码无法在Safari,Chrome或IE中创建cookie,但它确实在Firefox中成功创建了cookie.你们认为我遗失或错在这里的任何事情?
public static void SetAuthenticationCookie(CustomIdentity identity) { ConfigSettings configSettings = ConfigHelper.GetConfigSettings(); string cookieName = configSettings.CookieName; if (cookieName == null || cookieName.Trim() == String.Empty) { throw new Exception("CookieName entry not found in Web.config"); } string cookieExpr = configSettings.CookieExpiration.ToString(); string encryptedUserDetails = Encrypt(identity); HttpCookie userCookie = new HttpCookie(cookieName.ToUpper()); if (cookieExpr != null && cookieExpr.Trim() != String.Empty) { userCookie.Expires = DateTime.Now.AddMinutes(int.Parse(cookieExpr)); } userCookie.Values["UserDetails"] = encryptedUserDetails; userCookie.Values["Culture"] = configSettings.Customer.Culture; MyContext.Current.Response.Cookies.Add(userCookie); } 解决方法
Safari和IE8默认不接受第三方cookie.
当您使用JSONP呼叫另一个域时,该脚本设置的每个cookie都将被Safari和IE8阻止.你无能为力(在IE8中,你可以添加一个P3P策略,但这在Safari中不起作用). 有关于在JSONP调用中维护状态的解决方法,但它非常复杂(您必须手动管理状态并在调用的javascript中使用document.cookie) 作为替代方案,您可以要求您的用户降低其浏览器中的隐私设置,但这不是值得考虑的恕我直言. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |