WebService與共享COOKIE
左直拳
現在有兩個網站:www.abc.com,check.abc.com。要求用戶打開郵件時,訪問check.abc.com,保存COOKIE。以後用戶訪問www.abc.com,則檢查COOKIE。如果發現在check.abc.com上有COOKIE,則自動登陸。
這大概跟單點登陸有點類似。我剛開始的設想是:在check.abc.com上提供一個WebService,供www.abc.com調用來檢查COOKIE。
但是,在本機上直接用浏覽器訪問WebService檢查,可以准確讀取check.abc.com 保存的COOKIE;而運行同樣放在本機上的www.abc.com,通過www.abc.com上的頁面調用WebService,卻怎麼也讀不出COOKIE。調試了很久,查閱了許多資料都沒有結果。
後來有篇文章介紹說:COOKIE可以自動由子級域名分享,無須做什麼特別設置。對網站www.abc.com,check.abc.com來說,它們都是二級域名,一級域名是abc.com。所以,保存COOKIE的時候,將CookIE的Domain設置成“.abc.com”,無論www.abc.com還是check.abc.com,應該都可以順利讀取。代碼如下
public void WriteToCookIE(int userId)
{
HttpCookie cookie = new HttpCookIE(“UserInfo”);
cookIE.Values.Add(“UserId”, userId.ToString());
cookIE.Expires = DateTime.Now.AddHours(1);
cookIE.Secure = false;
cookIE.Domain = ".abc.com";
HttpContext.Current.Response.Cookies.Add(cookIE);
}
可是照樣不行!
老子一生氣,將WebService去掉了,在www.abc.com裡直接讀取,一讀就讀到了。
去他娘的WebService。