我在www.domain.com
上设置了一个站点,该站点可以对用户进行身份验证并将其凭据保存在Cookie中。跨不同子域(但不是全部)进行身份验证
有时用户访问在不同子域上的不同服务器上设置的处理程序。 handlers.domain.com
我不能使用通配符子域的cookies(曲奇不应该适用于其他子域)
我访问控制解决了到现在为止是用于handlers.domain.com
每个URL有一个GUID具体到用户。其他站点上的处理程序将假定该GUID所有者的身份。这当然不是一个很好的安全措施。
我考虑的替代方案:以handlers.domain.com
所有链接竟然会被链接到www.domain.com
一个重定向脚本,将重定向到脚踩handlers.domain.com
URL加密的时间,那么这将肯定知道它是作为直接访问从www.domain.com
认证重定向。 此解决方案在GET场景下工作正常,但会遇到预期POST数据的处理程序失败(上传大文件)
有谁知道或可以想到更好的解决方案或对我的解决方案有任何洞察?
(在这种情况下,我使用ASP.NET但解决的办法很可能是平台无关的,所以我会用不同的网络平台标签这个)
谢谢!
我确实建立了一个会话,但只在第一个子域上。也许,现在这是一个纯ASP.NET问题,我可以通过POST请求发布sessionId,并在其他域中“加入”会话(我使用中央数据库会话管理),但我不确定这可以是但在ASP.NET – Variant 2011-06-14 13:05:04
中完成您可能必须重写默认会话模块才能完成此操作,但这可能是可行的。 – jdc 2011-06-14 13:10:44
会议只是在我的回答中用作广义术语。例如,您可以将该标志放入数据库,然后从另一台服务器上的数据库中查询该标志,而不管使用何种类型的“会话模块”。只传递数据服务器端来验证请求是否有效。如果您使用密码术,您将共享密钥服务器端。但是使用密码学,你需要知道你在做什么以及如果秘密密钥被篡改或丢失了怎么办。通过“会话”(两台服务器之间的共享存储),每个请求都会有一个“秘密”。 – hakre 2011-06-14 13:19:27