0

我在 Staff 项目中使用非官方的 Axis2/C 来简单地公开一组方法以返回具有 REST 范式的数据集。

现在我需要对用户进行身份验证,并且我想使用 Staff 内置的“staff.Login”服务,始终采用 REST 方法。

我可以调用“login”和“openSession”方法(它们都返回给我一个有效的 sessionID),但我无法在后续调用中保持这个会话,因为如果我之后调用方法“getUserName”它说我是客人用户而不是我之前认证的用户!

我是否必须像令牌一样在每次后续调用服务时传递会话 ID?有人可以链接我有关登录服务的任何文档或示例吗?(我在网上找不到很多)

谢谢。

PS:Staff 有一个用于测试该服务的示例客户端,它运行正常,但我需要通过 REST 方法从浏览器中使用该服务。

4

1 回答 1

1

使用 REST+JSON 时,您的请求可能是这样的:

{
  "@headers": {
    "SessionId":"SID"
  },
  "GetUserName": {}
}

如果您使用的是 REST+SOAP,您的请求可能是这样的:

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
  <soapenv:Header>
    <sid:SessionId xmlns:sid="http://tempui.org/staff/sessionid">SID</sid:SessionId>
  </soapenv:Header>
  <soapenv:Body>
    <ns0:GetUserName xmlns:ns0="http://tempui.org/staff.Login"/>
  </soapenv:Body>
</soapenv:Envelope>

SID“openSession”或“login”返回的会话 ID在哪里。

于 2015-10-29T14:39:40.610 回答