1

每个人

我有两个网站 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";
    }
}
4

1 回答 1

2

不要费心设置跨域 cookie,在大多数情况下,它们会在所有现代浏览器中被阻止。

使用带有参数的纯 HTTP GET 和服务器端加密来执行跨域 SSO。

例如,在页面上,www.web1.com/Default.aspx您可以将隐藏的 IFrame 添加到某些特殊页面www.web2.com/sso.aspx?userid=<encrypted,timestamped userid>,从而将 cookie 设置为 on web2.com

于 2014-05-09T08:17:15.100 回答