1

みんな

www.web1.com と www.web2.com の 2 つの Web サイトがあります。ここで、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 を設定する必要はありません。ほとんどの場合、すべての最新ブラウザーでブロックされます。

クロスドメイン SSO を実行するには、パラメーターとサーバー側の暗号化を使用して純粋な HTTP GET を使用します。

たとえば、ページ上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 に答える