Asp.net

ASP.NET 子域 Cookie(父域和一個子域)

  • May 16, 2017

我有一個包含多個子域的應用程序,subone.parent.com,subtwo.parent.com。

我在 parent.com/login 上有一個登錄頁面。當使用者登錄時,我會根據他們所屬的域將他們重定向到正確的域。這工作正常。

FormsAuthenticationTicket ticket = new FormsAuth...
string encTicket = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
cookie.Domain = subone.parent.com
Response.Cookies.Add(cookie)

這會正確驗證 subone.parent.com 而不是 subtwo.parent.com 的使用者。但是我想做以下事情。

如果使用者返回 parent.com,我想知道他們已登錄並將他們重定向回 subone.parent.com。

是否有實現此目的的最佳實踐?還是我必須為 parent.com 設置另一個 cookie?

如果重要的話,我正在使用 asp.net mvc。

謝謝!

您可以像嘗試做的那樣跨域共享 cookie,但這並不簡單,例如這裡

另一種選擇是將 cookie 設置為“.parent.com”,而不是明確指定子域,並使用 cookie 儲存子域的詳細資訊。然後,您可以從您的任何子域(以及假設其 www.parent.com 的父域)訪問 cookie。

如果您使用 MVC,您可以輕鬆創建自定義過濾器並添加到 www.parent.com 控制器以檢查 cookie 是否存在,如果存在則重定向到 cookie 指定的子域。過濾器的更多細節在這裡

引用自:https://stackoverflow.com/questions/2172490