跳轉到內容

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')
華夏公益教科書