【问题标题】:How can we use IE and XDomainRequests while maintaining a drupal session?我们如何在维护 drupal 会话的同时使用 IE 和 XDomainRequests?
【发布时间】:2012-02-16 22:51:02
【问题描述】:

IE9 的 XDomainRequest 不发送身份验证或 cookie(http://blogs.msdn.com/b/ieinternals/archive/2 中的#5 010/05/13/xdomainrequest-restrictions-limitat 离子和解决方法.aspx)。

我们需要在经过身份验证的/会话上下文中发出所有数据请求。

一个普遍的想法是将会话令牌显式添加到 XDomainRequest,然后在后端使用 drupal 的 sess_read() 来检索会话。 但是,api 建议不要直接调用 sess_read() 引用各种不良副作用(http://api.drupal.org/api/drupal/includes%21s session.inc/6)。

是否有人成功使用此功能或找到其他解决方法?

【问题讨论】:

    标签: internet-explorer drupal sessionid xdomainrequest


    【解决方案1】:

    这似乎是一个解决方案:

    如果会话上下文丢失(由于只包含您的 $sessionKey 的匿名请求),那么我们可以通过以下方式检索用户会话/用户 ID:

    $userFetched = db_fetch_object(db_query("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '%s'", $sessionKey));
    
    //assuming sessionKey was valid, then $userFetched->uid will contain the user's id.
    

    【讨论】:

      猜你喜欢
      • 2018-02-21
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 2015-08-15
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多