Jer*_*oyd 10 asp.net cookies forms-authentication asp.net-membership cross-domain
我知道相关的安全风险并将其与业务联系起来,但他们希望让他们的5个域共享登录cookie.
我们正在使用并且没有计划停止使用ASP.Net Membership和Profiles.这可能吗?黑客甚至会非常感激.
开箱即用的ASP.NET不可能.
基于表单的身份验证基于cookie,cookie只能设置为特定域.
如果您想要真正的跨域(非子域)共享身份验证,则需要单点登录解决方案.
我已经自己动手了,而且相对简单.基本原则是您拥有一个主域,其中包含您的身份验证cookie(票证).然后,您从所有其他域重定向到该域.它并不是很漂亮,但事件Microsoft Passport以这种方式工作.
你可以在网上找到很多例子,看看这两个链接:
小智 5
您可以将所有这些域设置为您公司的子域:
www.company.com
shop.company.com
sales.company.com
research.company.com
..
Run Code Online (Sandbox Code Playgroud)
然后您将能够将 cookie 设置为父域,并且它对所有子域都是可见的。
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
cookie.Domain = ".company.com";
Repsonse.Cookies.Add(cookie);
Run Code Online (Sandbox Code Playgroud)
问候, Max Chernyshov http://prontocoder.com
| 归档时间: |
|
| 查看次数: |
14640 次 |
| 最近记录: |