跨二级域名的cookie需要设置以下属性:
(surance原创,请保留出处: http://www.fltek.com.cn)
HttpCookie cookie = new HttpCookie("User");
cookie.Value = "yiyioo";
cookie.Expires = DateTime.Now.AddMinutes(3);
cookie.Domain = "test.com";
Response.Cookies.Add(cookie);
重点就是变红的那句,要设置这个domain。只要这样设置后 ,所有的在这个域名下的二级域名都可以访问。
关于cookie的特性Ps两句:
cookie只是浏览器附加的一个功能,因此你要写Expires属性,不然会关闭浏览器就过期。(实际是cookie并没有存到硬盘,还是在浏览器的内存中。
cookie过期也不会像session一样,可以触发一个过期事件。因为这个是由浏览器定期删除的,跟服务器端没有关联。
cookie的原理既是浏览器写到硬盘指定地址的一个文本。你可以写任何域名,但是你读取cookie的时候,浏览器是根据你的域名返回cookie给你的。
cookie存在的理由:cookie可以唯一区分一个客户端。目前很多单点登陆解决方案,无法做到的就是“唯一区分客户端”。你用IP、硬盘号、mac区分,其实都不是明智的选择,采用浏览器自带的区分才是最好。比如多Tab如何处理,同台电脑的多个浏览器进程如何处理等。因此还是利用cookie和session。自己用数据库模拟很难的 。
如果多域名是在不同的web服务器上,需要做一些额外的配置。(比如智能解析)
需要配置cookie的密钥。因为cookie是加密的,加密的密钥默认是本机的某个硬件信息。如果换了web服务器,那么这个密钥就不用了,这样加密解密出来的东西也不同了。因此要手工设置一下密钥。
另外,使用asp.net的时候要注意,因为.net framework 1.1 和2.0默认的加密算法不同,因此如果要兼容这2种网站,也需要设置一下。
可以设置web.config的以下节点:(/System.Web/下的节点)
<machineKey validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902" decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC" validation="3DES" decryption="3DES" />
如果是.net用户,可以尝试使用这个类:
FormsAuthentication
这个类封装了单点登陆,你不需要去关注写cookie要怎么写了,只要在webconfig配置好,页面简单调用一下即可。
另外,如果需要实现桌面软件登陆(例如旺旺可以给淘宝网页登陆),可以参考下文
http://blog.csdn.net/thinker28754/archive/2007/12/26/1968539.aspx
参考文献:
http://content.websitegear.com/article/subdomain_tips.htm
分享到:
相关推荐
超实用的cookie设置案例,说明,编辑cookie,删除cookie方法
总之,正确设置Cookie的作用域是实现二级域名与顶级域名同步登录的关键步骤。通过在PHP配置文件中调整`cookiedomain`,你可以确保用户在整个网站的各个部分都能保持一致的登录状态,同时要注意保护用户数据的安全。
通常,Cookie被限制在创建它的特定域名下使用,这意味着在二级域名下无法直接访问一级域名设置的Cookie。然而,有时我们需要在一级域名及其所有二级域名之间共享Cookie,以实现如单点登录(Single Sign-On, SSO)的...
但是,由于二级域名`.example.com`是`app1.example.com`和`app2.example.com`的父域名,所以它们可以共享同一级别的Cookie。 实现跨域共享SSO的关键步骤如下: 1. **设置Cookie**: 用户在主站(如`login.example....
不同域名业务,甚至不同合作方网站的cookie可能或多或少需要进行共享使用,遇到这个情况的时候,大家一般想到的是使用登录中心分发cookie状态再进行同步进行解决,成本较高而且实施起来比较复杂和麻烦。 因为cookie...
Nginx 中 rewrite 实现二级域名、三级域名、泛域名、路径的重写 Nginx 中的 rewrite 模块是实现 URL 重写和.redirect 的强大工具。下面我们将详细介绍 Nginx 中如何使用 rewrite 实现二级域名、三级域名、泛域名、...
有时候两个域名可能在不同的服务器上,但是我们依然希望二级域名能够顺利访问主域名的cookie,主域名可以顺利访问二级域名的cookie,比如sc.jb51.net 希望能访问 www.jb51.net 和 blog.jb51.net 的 cookie 下面介绍3种...
在探讨二级域名Cookie问题的解决方法之前,首先要了解Cookie是什么。Cookie,又称网络小甜饼,是由网站服务器创建的文件,存储在用户的浏览器中,用来记录用户的某些信息,如访问偏好、登录状态等。Cookie有两个关键...
在互联网应用中,二级域名和跨域资源共享是一个常见的需求,特别是在多站点或者博客平台中,用户数据的统一管理需要在不同子域名之间共享Cookies。本文将详细解释如何在ASP环境中实现二级域名或跨域共享Cookies。 ...
也就是说二级域名(或者三级域名)之间可以通过这种方式共享cookie。 其实cookie的domain属性的用法跟path有些类似,比如我们将cookie的path设置为/,则/user目录下也可以访问该cookie。 实践 Apache同一端口对应...
可以考虑使用Cookie或自定义解决方案来实现跨二级域名的状态保持。 5. **安全与性能优化**:确保所有转向过程都经过安全验证,避免恶意重定向。同时,合理的缓存策略和减少不必要的数据库查询可以提升系统的响应...
跨域名和应用程序登录是现代互联网应用中的重要技术概念,它涉及到用户身份验证、安全性和用户体验。随着互联网服务的多样化和平台化,用户往往需要在不同的网站或应用之间无缝切换,而无需反复输入用户名和密码。这...
跨二级域名 我们知道cookie是可以跨二级域名来访问,这个很好理解,例如你 www.test1.com 在的web应用程序创建了一个cookie,要想在bbs.test1.com这样的二级域名对应的应用程序中访问,就必须你在创建cookie的时候...
3. **会话管理**:由于二级域名被视为不同的站点,因此需要处理跨域会话问题,可能需要利用cookie或自定义会话ID管理机制。 4. **数据库设计**:二级域名的数据存储可能需要一个关联主域名的数据库结构,用于存储子...
3. **共同目标**:虽然Session和Cookie有不同的特性和应用场景,但它们的共同目标都是为了保持用户的会话状态,提高用户体验。 #### 四、实际应用案例 假设一个在线购物网站: - 用户登录后,服务器为该用户创建...
在大多数情况下,一个企业会使用同一个顶级域名(如`.com`)并通过不同的二级域名(如`app1.example.com`和`app2.example.com`)来区分不同的业务系统。为了实现SSO功能,企业通常会部署一个专门的登录系统(如`sso....
例如,曾经出现过“.cc”和“.tv”这样的顶级域名,它们在某些情况下可能被当作二级域名处理。随着互联网的发展,域名后缀变得多样化,如“.***”或“.co.uk”等。 问题在于:是否一个站点如***可以设置一个cookie...