簡體   English   中英

使用FormsAuthentication的跨域Cookie

[英]Cross Domain Cookies With FormsAuthentication

我知道相關的安全風險並將其與業務聯系起來,但他們希望讓他們的5個域共享登錄cookie。

我們正在使用並且沒有計划停止使用ASP.Net Membership和Profiles。 這可能嗎? 黑客甚至會非常感激。

開箱即用的ASP.NET不可能。

基於表單的身份驗證基於cookie,cookie只能設置為特定域。

如果您想要真正的跨域(非子域)共享身份驗證,則需要單點登錄解決方案。

我已經自己動手了,而且相對簡單。 基本原則是您擁有一個主域,其中包含您的身份驗證cookie(票證)。 然后,您從所有其他域重定向到該域。 它並不是很漂亮,但事件Microsoft Passport以這種方式工作。

你可以在網上找到很多例子,看看這兩個鏈接:

身份驗證Cookie

跨域身份驗證

您可以將所有這些域設置為公司的子域:

www.company.com
shop.company.com
sales.company.com
research.company.com
..

然后,您將能夠將cookie設置為父域,並且它將對所有子域可見。

var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
cookie.Domain = ".company.com";
Repsonse.Cookies.Add(cookie);

此致,Max Chernyshov http://prontocoder.com

不僅ASP.Net這是不可能的,但根本不可能。 Cookie始終是特定於域的 - 任何商業瀏覽器都不會以任何其他方式工作。 這是設計上非常必要的,以防止廣泛濫用cookie。 Muerte向您指出正確的方向(單點登錄)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM