`
近乎sns
  • 浏览: 12420 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

跨域登陆,IE下无法记录Cookie

阅读更多

作者:近乎团队

在Cookie规范上说,一个cookie只能用于一个域名,不能够发给其它的域名。当你在浏览器中对一个域名设置了一个cookie,这个 cookie对于其它的域名将无效。如果你想让你的用户从两个不同域上登陆,那就有点麻烦了。我们看下跨二级域和主域是怎么实现登陆的。

跨二级域名

  我们知道cookie是可以跨二级域名来访问,例如你 www.test1.com 在的web应用程序创建了一个cookie,要想在bbs.test1.com这样的二级域名对应的应用程序中访问,就必须 在创建cookie的时候设置domain参数domain=test1.com,设置为相同的主域

HttpCookie lcookie = HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName];

lcookie.Domain = "test1.com";

 

跨顶级域名

比如,现在是两个不同的域名:www.weibo.zz;www.video.zz 两个不同的域名,如果用单纯的用Jsonp 也可以实现,我测试在火狐和google 下,两个站点同时登录没有问题,但是IE 下没有记录Cookie,无法实现跨越登录,查阅了一些资料,终于找到解决方案:

需要在代码中添加如下代码,用两个域名分别访问就可以了。

HttpContext.Response.AddHeader("P3P", "CP=CAO PSA OUR");

这段代码是用来设置P3P响应头。是因为IE浏览器支持的P3P导致跨站点时cookie被阻止,无法创建cookie。

(FireFox目前还不支持P3P安全特性,FireFox自然也不存在此问题。不需要添加P3P响应头。)

原文链接:http://c.jinhusns.com/cms/c-861?type=bwj

0
2
分享到:
评论

相关推荐

    cookie访问限制ip

    要使用JavaScript实现Cookie的IP限制,我们需要在设置Cookie时记录该Cookie关联的IP地址。以下是一个简单的示例: ```javascript function setCookie(name, value, days, ipAddress) { var expires = ''; if ...

    discuz 跨域整合的记录文件

    Internet Explorer 6(IE6)不支持P3P(Platform for Privacy Preferences Project)协议,可能导致Cookie在跨域时被拒绝。为了解决这个问题,可以在IIS服务器级别设置自定义HTTP头,添加P3P头信息。例如,设置头名...

    黑马程序员_PHP_课程同步笔记day39:cookie介绍 .docx

    在IE浏览器中,Cookie通常保存在"**C:\Documents and Settings\你的用户名\Cookies**"目录下的文本文件中,每个文本文件对应一个Cookie。 - **Cookie的不可跨域名性** 为保护用户隐私,Cookie具有不可跨域名的...

    php中cookie的使用方法

    - `httpOnly`参数设为true可以防止XSS攻击,因为JavaScript无法访问设置了`httpOnly`的Cookie。 - Cookie的大小有限制,通常不超过4KB,包含名称、值和所有其他属性。 - 对于跨域和子域名共享Cookie,需正确设置`$...

    ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法

    在开发基于ThinkPHP框架的网站时,可能会遇到Cookie和Session之间的冲突导致Cookie无法正常工作的问题。这通常是由于HTTP头部信息的发送时机不当或配置不正确所引起的。以下是一些关于如何解决这种冲突以及理解...

    ie httpHeaders + fire httpHeaders 天涯浪子

    5. **跨域问题**:确认CORS(跨源资源共享)头设置是否正确。 总结,"ie httpHeaders + fire httpHeaders 天涯浪子"描述的是利用特定工具进行HTTP头信息的查看和调试,这对于网页开发者、网络管理员以及对网络通信...

    C#实现标签式IE浏览器

    在本文中,我们将深入探讨如何使用C#编程语言来实现一个功能完备的标签式Internet Explorer(IE)浏览器。C#是一种强大的、面向对象的编程语言,由微软开发,广泛应用于Windows应用程序开发,包括桌面和Web应用。这...

    LotusPhp笔记之:Cookie组件的使用详解

    Cookie是Web应用程序中常用的存储客户端数据的方式,它可以用来记录用户偏好、保持登录状态等。在LotusPhp中,使用Cookie组件需要遵循一定的步骤。 首先,创建一个配置文件`cookie.conf.php`,这个文件用于定义...

    用js读、写、删除Cookie代码续篇

    在开发环境中,通常需要开启浏览器的“允许来自文件的跨域请求”或使用服务器环境来正确处理Cookie。 2. 问题二:Cookie没有设置为永不过期,只考虑了一个时间段后过期,这在实际应用中可能不适用。合理的做法是...

    http_wacth

    通过它可以轻松查看HTTP缓存策略、Cookie管理、重定向路径以及各种HTTP头部信息,对于解决跨域问题、处理JSONP和AJAX请求等问题都大有裨益。 然而,值得注意的是,尽管HTTP_Watch主要面向IE浏览器,随着现代浏览器...

    ieHTTPHeaders

    这些信息包括但不限于:方法(GET、POST等)、URL、状态码(如200 OK、404 NOT FOUND等)、协议版本、请求/响应头(如Cookie、User-Agent、Content-Type等)以及内容大小。通过这些信息,开发者可以深入理解页面加载...

    php中用数组的方法设置cookies

    这允许在单个Cookie下存储多个值,并通过数组索引来访问它们。 在实际应用中,这种方法可能用于记录用户浏览历史、保存购物车内容或其他需要在客户端保留的数据。需要注意的是,由于Cookie的大小限制(通常不超过4...

    webuploader大文件分片上传aspx

    如果前后端不在同一个域名下,需要开启ASP.NET的CORS(跨源资源共享)设置,允许前端的WebUploader发起跨域请求。 8. **优化与性能** 为了提高上传性能,可以考虑使用多线程上传分片,同时监控服务器负载,动态...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关...

    js动态上传多张图片

    - 设置`xhr.withCredentials = true`启用跨域的Cookie传输。 8. **进度条显示**: - `XMLHttpRequest`的`onprogress`事件提供上传进度信息,可以根据`event.loaded`和`event.total`计算百分比。 - 更新UI以显示...

    功能非常全面的一个论坛源码

    149. 解决cookie跨域访问问题 150. 退出时增加是否清空Cookie信息的选择 151. 解决一直以来论坛编码解码上的一个潜在错误 152. 对一些页面进行瘦身,进行JS文件分离 154. 总专题及版面专题,预载数据更稳定...

    JavaScript权威指南(第6版)(中文版)

    20.3 利用IE userData持久化数据 20.4 应用程序存储和离线Web应用 第21章 多媒体和图形编程 21.1 脚本化图片 21.2 脚本化音频和视频 21.3 SVG:可伸缩的矢量图形 21.4 中的图形 第22章 HTML5 API 22.1 地理位置 22.2...

Global site tag (gtag.js) - Google Analytics