use*_*526 6 php login multiple-domains single-sign-on
我目前正在开展跨越多个领域的项目.我想要的是让用户能够在一个站点上登录并同时登录所有其他站点.
用户会话存储在数据库中,我在每个域上设置的cookie包含会话ID.
因此,基本上当用户登录到example.com时,会使用其会话ID创建cookie,会话数据将存储在数据库中.完成此操作后,需要在具有此唯一会话ID的所有其他域上创建cookie,以便当用户从一个站点移动到另一个站点时,它们将自动登录.
现在我已经找到了在Firefox中执行此操作的方法(使用在其他域上执行PHP脚本的图像标记,实质上是在不同的域上创建不同的cookie)但是这种方法在IE中不起作用(没有测试过Opera或野生动物园等).
有没有人对如何在IE中使用它有任何想法?
看看我的问题跨域用户跟踪。
您需要做的就是向“图像”添加另一个 HTTP 标头。
如果您在 Internet Explorer 6 中使用 FRAMESET,则会话变量中的引用将会丢失:
您可以向子内容添加 P3P 紧凑策略标头,并且可以声明不会对用户的数据执行恶意操作。如果 Internet Explorer 检测到满意的策略,则 Internet Explorer 允许设置 cookie。
满足此标准的简单紧凑策略如下:
P3P:CP=“CAO PSA OUR”
此代码示例显示,您的网站允许您访问您自己的联系信息 (CAO),任何分析的数据都只是“伪分析”,这意味着该数据与您的在线角色相关,而不是与您的实际身份相关 (PSA ),并且您的数据不会提供给任何外部机构供这些机构使用(我们的)。
如果您在 ASP 页中使用 Response.AddHeader 方法,则可以设置此标头。在 ASP.NET 中,您可以使用 Response.AppendHeader 方法。您可以使用 IIS 管理管理单元 (inetmgr) 添加到静态文件。
请按照以下步骤将此标头添加到静态文件中:
- 单击“开始”,单击“运行”,然后键入 inetmgr。
- 在左侧导航页中,单击网站中要添加标头的相应文件或目录,右键单击该文件,然后单击“属性”。
- 单击 HTTP 标头选项卡。
- 在“自定义 HTTP 标头”区域框中,单击“添加”。
- 键入 P3P 作为标头名称,然后对于紧凑策略字符串,键入 CP=...,其中“...”是适合您的紧凑策略的代码。