当前位置:  开发笔记 > 编程语言 > 正文

使用safari,chrome创建一个cookie失败,即使用FF

如何解决《使用safari,chrome创建一个cookie失败,即使用FF》经验,为你挑选了1个好方法。

我们使用以下代码来创建安全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);
        }

Philippe Ley.. 7

Safari和IE8默认不接受第三方cookie.

当您使用JSONP呼叫另一个域时,该脚本设置的每个cookie都将被Safari和IE8阻止.你无能为力(在IE8中,你可以添加一个P3P策略,但这在Safari中不起作用).

有关于在JSONP调用中维护状态的解决方法,但它非常复杂(您必须手动管理状态并在调用的javascript中使用document.cookie)

作为替代方案,您可以要求您的用户降低其浏览器中的隐私设置,但这不是值得考虑的恕我直言.



1> Philippe Ley..:

Safari和IE8默认不接受第三方cookie.

当您使用JSONP呼叫另一个域时,该脚本设置的每个cookie都将被Safari和IE8阻止.你无能为力(在IE8中,你可以添加一个P3P策略,但这在Safari中不起作用).

有关于在JSONP调用中维护状态的解决方法,但它非常复杂(您必须手动管理状态并在调用的javascript中使用document.cookie)

作为替代方案,您可以要求您的用户降低其浏览器中的隐私设置,但这不是值得考虑的恕我直言.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有