700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java cookie p3p_利用P3P实现单点登录和COOKIE的跨域读写

java cookie p3p_利用P3P实现单点登录和COOKIE的跨域读写

时间:2023-04-03 19:51:45

相关推荐

java cookie p3p_利用P3P实现单点登录和COOKIE的跨域读写

首先说明,同一个顶级域名的情况我不说什么,很简单,就一个Cookie的Domain属性。

下面来说顶级域名不同的情况。

有时候我们会有这么一种需求:当我们登录A网站时,同时也要能登录B网站,继而访问B网站需要登录才能看到的信息。这个时候怎么办呢?那有人会说用SSO(单点登录)来做。SSO可能会有多种的实现方式,但是我们这里只介绍利用P3P来实现的方式。也就是如标题所说:利用P3P实现单点登录和COOKIE的跨域读写。

至于P3P是什么,我也不是很清楚,如果想知道,去问百度吧。还有如果您对P3P还不怎么认可,那么我就多说一句:DISCUZ论坛和PhpcmsV9都是通过这种方式来实现单点登录的,怎么样?这下认可了吧?

下面贴出例子,供大家参考。

A网站有两个页面,一个用来设置COOKIE,如下:

index.asp

%>

一个用来读取COOKIE

main.asp

Response.Write(Request.Cookies("username"))

%>

特别注意:在做登录的时候,如果登录之后想立即跳转的话,不能用服务器端脚本Redirect,必须用Javascript的window.location.href跳转。信不信由你。

B网站有两个页面,一个是用来同步设置COOKIE的,如下:

index.asp

Response.AddHeader"P3P", "CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"Response.Cookies("username") = Request("username")

Response.Write(Request.Cookies("username"))

%>

另一个是是访问COOKIE的,如下:

show.asp

Response.Write(Request.Cookies("username"))

%>

代码是用ASP写的,PHP和或者JSP原理都是一样的。

看完代码是不是觉得很简单?不像以前别人写的那么复杂。看懂的支持下吧。

这里有个地方需要注意:如果没有实现效果,估计是因为使用iframe时,站点还没有成功写入cookie,这时你可以使用setTimeout()来延迟转向。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。