Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ibm mobilefirst 什么是connectAs=";“最终用户”;真的吗?_Ibm Mobilefirst_Adapter - Fatal编程技术网

Ibm mobilefirst 什么是connectAs=";“最终用户”;真的吗?

Ibm mobilefirst 什么是connectAs=";“最终用户”;真的吗?,ibm-mobilefirst,adapter,Ibm Mobilefirst,Adapter,名为connectAs=“endUser”的适配器XML文件元素中的Worklight文档。它说这意味着: 到后端的连接是使用用户的身份创建的。 只有在安全测试中标识了用户域时才有效 对于这个过程 但是,从适配器到后端HTTP服务器执行的HTTP连接来看,这实际上意味着什么?例如,它如何影响JSSessionID?编辑:继我的原始文章之后,安东·阿列克桑德罗夫(Anton Aleksandrov)提供了一篇博客文章,详细介绍了该机制的工作原理: 这实际上意味着Worklight服务器的行为就

名为
connectAs=“endUser”
的适配器XML文件元素中的Worklight文档。它说这意味着:

到后端的连接是使用用户的身份创建的。 只有在安全测试中标识了用户域时才有效 对于这个过程


但是,从适配器到后端HTTP服务器执行的HTTP连接来看,这实际上意味着什么?例如,它如何影响JSSessionID?

编辑:继我的原始文章之后,安东·阿列克桑德罗夫(Anton Aleksandrov)提供了一篇博客文章,详细介绍了该机制的工作原理:


这实际上意味着Worklight服务器的行为就像是一个“最终用户”(特别是一个web浏览器)

在给定的Worklight适配器中,connectAs=“endUser”参数将导致HTTP集Cookie头作为经过身份验证的Worklight会话的一部分存储。请求connectAs=“endUser”的后续请求将发送作为“endUser”服务器端会话的一部分存储的任何cookie

Worklight文档特别指出,它仅在已识别的领域中有效,因为如果没有领域,则无法保存这些cookie以供以后在服务器端会话中使用

如果选择使用此参数,Worklight客户端应用程序的效果不应改变

Worklight服务器到后端HTTP服务将更改。基本上,后端服务器将把使用connectAs=“endUser”的Worklight适配器视为单个HTTP web浏览器。因此,对于JSESSIONID的示例:

  • 您首次启动了一个过程“登录”,该过程指定了connectAs=“endUser”。此过程还有一个相关的安全测试,它强制用户登录到一个领域(无论采用何种方式,或匿名方式-只要Worklight有一个用户会话可将cookie附加到,这其实并不重要)
  • 当该请求到达一个基于Java的服务器,该服务器通过JSESSIONID跟踪会话时,它将检测到这是第一次请求。它将处理请求,并发送一个HTTP响应,其中包含HTTP正文中所需的任何内容。在HTTP头中,将有一个包含JSESSIONID的Set-Cookie响应
  • 由于Worklight过程包含connectAs=“endUser”,Worklight服务器将处理这些设置的Cookie头,并将其与针对Worklight领域授权的用户会话一起存储(这就是为什么您需要登录一个领域才能工作的原因)
  • 在对过程“mySecondServerProcedure”的后续请求中,该过程还具有connectAs=“endUser”和指定的相同领域,Worklight服务器将在传出HTTP请求时自动向服务器提供存储的cookie,以及您在requestHttp()上添加的任何参数调用适配器。在本例中,将提供作为“登录”一部分设置的JSESSIONID
  • 如果您对未设置connectAs=“endUser”的过程“myThirdServerProcedure”发出另一个请求,则在传出HTTP响应中不会向服务器提供Cookie,而您不会在适配器中的requestHttp()调用上手动提供该响应作为“Cookie”参数的一部分
  • 需要注意的要点:

    • 用户必须登录才能使其工作,以便Worklight可以将HTTP Cookie与会话关联
    • 会话cookie存储仅在发出初始请求的适配器内有效;如果在将JSESSIONID设置为上述“登录”的一部分后,从另一个适配器运行connectAs=“endUser”请求,则此请求不会自动将JSESSIONID cookie附加到传出请求中
    • 如果您注销已验证的Worklight用户会话,则对这些Cookie的所有引用都将消失
    我的一般经验如下:

    • 如果要执行一些相当简单的身份验证,需要后端服务器上的cookie保持一致,请使用endUser
    • 如果您正在执行更复杂的操作,或者可能需要服务器发送的cookie可以从多个适配器获得,请找到另一种存储cookie的方法。我喜欢的一种模式是提供一个包装器方法,该方法生成传出的HTTP请求,并处理响应中返回的报头,以便在某处存储必要的“全局”属性。在Worklight世界中,这可以作为Worklight用户会话对象的一部分,也可以调用底层Java或数据库存储实现

    编辑:继我的原始帖子之后,安东·阿列克山德罗夫(Anton Aleksandrov)提供了一篇博文,详细介绍了该机制的工作原理:


    这实际上意味着Worklight服务器的行为就像是一个“最终用户”(特别是一个web浏览器)

    在给定的Worklight适配器中,connectAs=“endUser”参数将导致HTTP集Cookie头作为经过身份验证的Worklight会话的一部分存储。请求connectAs=“endUser”的后续请求将发送作为“endUser”服务器端会话的一部分存储的任何cookie

    Worklight文档特别指出,它仅在已识别的领域中有效,因为如果没有领域,则无法保存这些cookie以供以后在服务器端会话中使用

    如果选择使用此参数,Worklight客户端应用程序的效果不应改变

    Worklight服务器到后端HTTP服务将更改。基本上,后端服务器将把使用connectAs=“endUser”的Worklight适配器视为单个HTTP web浏览器。那么对于