2012-02-16 74 views
0

IE9的XDomainRequest不发送身份验证或cookie(# 010/05/13/xdomainrequest-restrictions-limitat ions-and-workarounds.aspx)。如何在维护drupal会话的同时使用IE和XDomainRequests?

我们需要在认证/会话环境中进行所有数据请求。

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

有没有人成功使用过这个或找到了另一个解决方法?

回答

0

这似乎是一个解决方案:

如果会话上下文丢失(由于其中只包含您的$ 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.