cookies可以跨域了~单点登陆(a.com.cn与b.com.cn可以共享cookies)
生活随笔
收集整理的這篇文章主要介紹了
cookies可以跨域了~单点登陆(a.com.cn与b.com.cn可以共享cookies)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果您的a.com.cn站點需要與b.com.cn站點共享cookies,一般滿足這種要求的系統是為了做單點登陸的,現在我來講一下實現方法:
a.com.cn登陸后,寫cookies,在b.com.cn里,登陸狀態為已經登陸,即它們的cookies可以共享
在a.com.cn站里寫cookies的同時,調用b.com.cn里的寫cookies的方法,代碼如下
<script type="text/javascript"> function CategoryRedirect(id, url) { location.href = "/Help/CategoryRedirect?id="+id+"&url="+url; } </script> controller代碼文件: ??????? [HttpGet] /// <summary> /// 需要跨域讀取,寫COOKIES(跨域有問題) /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult CategoryRedirect() { this.ControllerContext.HttpContext.Response.AddHeader("cache-control", "no-cache"); VCommons.Http.CookieHelper.Remove("CategoryID"); VCommons.Http.CookieHelper.Write("CategoryID", Request["id"]); ViewData["id"] = Request["id"]; ViewData["url"] = Request["url"]; return View(); }VIEW文件
?? <script language="javascript"> window.onload = function() { location.href = '<%=ViewData["url"] %>'; } </script> ? <div> <iframe src='http://b.com.cn/setcookies.aspx?id=<%=ViewData["id"] %>' style="display:none"></iframe> </div>這樣每頁a.com.cn寫COOKIES時,都調用了一個b.com.cn的寫COOKIES的方法,達到的效果就是在b.com.cn里可以讀到這個cookies。
同理如果b.com.cn要寫的cookies在a.com.cn里共享的話,再用相同的方法做一次就可以了
b.com.cn里的設置cookies代碼如下:
setcookies.aspx
public partial class setcookies : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { HttpContext.Current.Response.AddHeader("p3p", "CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"); VCommons.Http.CookieHelper.Remove("CategoryID"); HttpCookie cookie = new HttpCookie("CategoryID", Request["id"]); cookie.Domain = "c2cedu.com"; HttpContext.Current.Response.AppendCookie(cookie); ? } }http://www.cnblogs.com/lori/archive/2011/08/01/2123875.html
總結
以上是生活随笔為你收集整理的cookies可以跨域了~单点登陆(a.com.cn与b.com.cn可以共享cookies)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OO开发思想:面向对象的开发方法(Obj
- 下一篇: 汽车空调爆管后需不需要补冷冻油?