跳转到内容

XQuery/基本会话管理

来自维基教科书,开放的书籍,为开放的世界

您希望将 Web 应用程序的一些行为与用户的登录会话关联起来。

eXist 和其他 Web 服务器提供了一些函数来管理与登录会话关联的信息。

xquery version "1.0";

let $session-attributes := session:get-attribute-names()

return
<results>
   {for $session-attribute in $session-attributes
       return
       <session-attribute>{$session-attribute}</session-attribute>
   }
</results>

在您添加任何会话属性之前,这可能只返回一个变量,例如

<results>
   <session-attribute>_eXist_xmldb_user</session-attribute>
</results>


xquery version "1.0";

(: set the group and role :)
let $set-dba-group := session:set-attribute('group', 'dba')
let $set-role-editor := session:set-attribute('role', 'editor')

let $session-attributes := session:get-attribute-names()

return
<results>
   {for $session-attribute in $session-attributes
       return
       <session-attribute>{$session-attribute}</session-attribute>
   }
</results>

这将返回以下属性

<results>
  <session-attribute>group</session-attribute>
  <session-attribute>role</session-attribute>
  <session-attribute>_eXist_xmldb_user</session-attribute>
</results>

这些属性将与用户关联,直到用户注销或其会话超时,通常在 15 分钟的非活动时间后。

会话属性的一个示例用途是跟踪用户界面首选项。例如,如果用户希望按人员的邮政编码对数据进行排序,您可以将其添加到他们的会话变量中。

  let $set-sort := session:set-attribute('sort', 'zip-code')
华夏公益教科书