c# – 单点登录,有2个子域,一个Java,一个.NET
我正在寻找上述问题的一个很好的解决方案.我们可能会在.NET上运行表单身份验证.
我有一个在a.mydomain.com上运行的ASP.NET MVC应用程序和一个在b.mydomain.com上运行的基于Java的应用程序. 什么是最好的方法,这样我就不必登录每个应用程序.比如,当我登录a.mydomain.com然后打开Java b.mydomain.com时,它会检查并看到我已经登录了? WCF AuthenticationService类是否适用于此?我可以从b.mydomain.com的JavaScript做一个AJAX请求来检查我是否已经在.NET应用程序中登录了吗? 解决方法
只要mydomain.com不在公共后缀列表(
http://publicsuffix.org/list/)中,a.mydomain.com就可以为.mydomain.com提供域cookie.
(请注意,在放置cookie时只能降低一级:a.b.mydomain.com不能放置.mydomain.com cookie) 该cookie将被发送到b.mydomain.com(以及* .mydomain.com和mydomain.com),并可用作令牌来打开会话.因此,请务必控制整个* .myDomain.com子域并使其成为httpOnly和安全(https) Response.SetCookie(new HttpCookie("myCookieName","myCookieValue") { HttpOnly = true,Domain = ".myDomain.com",Secure=true }); Atlassian Crowd解决方案http://www.atlassian.com/software/crowd/overview的某些部分基于此cookie机制 所以你可能会: >在a.domain.com上启用表单身份验证 请注意,您将无法访问cookie客户端(因此没有js cookie处理,除非它是服务器端js,例如nodejs) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |