Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
Delphi Kbmmw。Can';t在kbmMWAuthorizationManager上激活注销事件_Delphi - Fatal编程技术网

Delphi Kbmmw。Can';t在kbmMWAuthorizationManager上激活注销事件

Delphi Kbmmw。Can';t在kbmMWAuthorizationManager上激活注销事件,delphi,Delphi,我正在测试kbmmw(Delphi 8.1)中的自动化(客户端\服务器)示例 当我在客户端运行kbmMWSimpleClient1.Connect时,我在服务器端得到onLogin事件 在客户端运行kbmMWSimpleClient1.Disconnect时,无法获取kbmMWAuthorizationManager对象上的onLogout事件 如何激活它?您可以在初始连接上看到登录事件,因为您已定义客户端应在第一次请求时自动登录(mwaoAutoLogin) 但是,断开连接并不自动意味着客户端

我正在测试kbmmw(Delphi 8.1)中的自动化(客户端\服务器)示例

当我在客户端运行kbmMWSimpleClient1.Connect时,我在服务器端得到onLogin事件

在客户端运行kbmMWSimpleClient1.Disconnect时,无法获取kbmMWAuthorizationManager对象上的onLogout事件


如何激活它?

您可以在初始连接上看到登录事件,因为您已定义客户端应在第一次请求时自动登录(mwaoAutoLogin)

但是,断开连接并不自动意味着客户端已注销。它可以是临时断开连接,也可以是计划中的断开连接,如果客户端是配置为在每次请求时连接、POST/GET和断开连接的浏览器。 因此,双连接注销,在相同的意义上,连接登录。第一个请求=如果定义了MWAO自动登录,则登录

有两种方法可以安全地注销

  • 通过调用Logout方法,例如,因为用户 客户端单击注销按钮
  • 由于空闲时间,登录超时。如果未收到任何请求 在指定的时间内通过特定的登录令牌进行 授权管理器将自动确保注销 代币正在发生
  • 授权管理器上的属性DefaultMaxIdleTime定义自动登录前的默认空闲时间。其当前3600秒=1小时。
    在定义参与者时,通过设置actors MaxIdleTime属性,也可以为不同的参与者设置不同的默认值。

    非常感谢您的详细回复。我可以问更多关于超时的问题吗。我启动了服务器和两个客户端(授权演示)。所有请求(“全部查询”btn)都已完成,但几分钟后,我按下“全部查询”底部,收到错误“匿名用户未授权”。断开连接和重新连接功能没有帮助,我无法在不重新启动程序的情况下重新启动查询。如何解决?匿名请求通常意味着在客户端请求中找不到用户名/密码或令牌。请记住,所有客户端代码(所有kbmMWSimpleClient、kbmMWClientQuery、kbmMWClientResolver等)应将第一个请求中获得的令牌重新用于所有后续请求。集中化的方法是在datamodule上放置一个TkbmMWSimpleClient,并指定所有客户端查询组件以使用这个简单的客户端实例作为模板。然后,作为客户端应用程序中的第一件事,通过simpleclient进行初始“登录”请求调用。