大家
我有两个网站www.web1.com和www.web2.com。现在我想在web1中编写一个cookie,并通过Response.Redirect将其写入web2。 如果它有效,我想通过这种方法实现一个简单的sso。 但是,我无法在web2中读取cookie。有人可以帮助我找出我的代码是否有问题,或者cookie不能通过这种方式共享跨域共享。 感谢:)
这是代码:
在www.web1.com/Default.aspx
protected void Page_Load(object sender, EventArgs e)
{
HttpCookie ck = new HttpCookie("userid", "00000001");
ck.Expires = DateTime.Now.AddDays(1);
ck.Domain = ".web2.com";
Response.Cookies.Add(ck);
Response.Redirect("http://www.web2.com/Default.aspx");
}
和www.web2.com/Default.aspx中的代码
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["userid"] != null)
{
lbCookie.Text = Request.Cookies["userid"].Value;
}
else
{
lbCookie.Text = "No Cookies";
}
}
答案 0 :(得分:1)
不要打扰设置跨域cookie,在大多数情况下,它们将在所有现代浏览器中被阻止。
使用带参数的纯HTTP GET和服务器端加密来执行跨域SSO。
例如,在页面www.web1.com/Default.aspx
上,您可以将隐藏的IFrame添加到某个特殊页面www.web2.com/sso.aspx?userid=<encrypted,timestamped userid>
,然后这个页面会在web2.com
上设置Cookie。