第五十九章 CSP的常见问题 - 会话和许可证,为什么我要经常登录?
当我尝试加载CSP
页面时,出现以下错误:错误#5924
:出现错误,无法显示指定的错误页面-请通知网站管理员。这是什么意思,我该怎么解决?
这个错误可能是由许多不同的问题造成的。查看错误日志,以获得有关所发生的实际错误的更具体的信息。在终端中,发出以下命令:
d ^%ER
要查看生成的错误日志,请在管理门户中导航至系统操作>系统日志>应用程序错误日志,并检查相应命名空间的错误。错误按日期包含在文件夹中。
如果设置了一个自定义错误页,这可能意味着自定义错误页没有机制来处理您调用的页面中的错误。这也可能意味着自定义错误页面本身产生了一个错误。跟踪此错误的一种方法是暂时关闭您的自定义错误页面,并尝试加载CSP
页面。
如果CSP
页面在本地工作,但从另一台计算机调用时却不能工作,这可能是因为有一个单一用户版本的Caché或没有Caché许可证。从远程机器调用CSP
页面既需要Caché的完整版本,也需要具有可用许可证的有效密钥。将Caché
key添加到从Internet
下载的版本中并不能使其具有完整的功能。你仍然需要收到一个完整版本。另请参见附录B错误注释中的错误5924
我试着显示一个CSP
页面,但什么也没出现,或者我看到一个登录屏幕,输入一个有效的用户名/密码,但它不让我进入。怎么了?我非常确定CSP
网关被配置为与正确的Caché
实例对话,或者我使用的是Caché
附带的私有Apache
安装,所以它是预先配置的。
确保从%SYS
命名空间打开了安全事件审核。至少,审计登录、注销和LoginFailure
。
- 在终端的
%SYS
命名空间中,输入Do ^SECURITY
. - 选择审核设置,配置审核事件,并创建审核事件。
- 输入
%SYSTEM/%Login/Login、%SYSTEM/%Login/Logout和%SYSTEM/%Login/LoginFailure
。
尝试再次访问CSP
页面,并检查审计日志,看看是否可以看到任何失败。这通常会告诉问题出在哪里——比如服务被禁用、密码不正确,或者没有权限运行这个CSP应用程序。
会话和许可证,为什么我要经常登录?
在以前的版本中,当应用程序共享会话时,它们只能通过会话对象共享身份验证和数据。
共享会话有两种方式:
- 通过会话
cookie
路径。 - 将
CSPSHARE=1
放入应用程序页面的链接中。
当会话超时时,它将被销毁,其身份验证也将丢失。如果重新加载现有页面,用户必须再次登录。对于通过会话cookie
路径连接的应用程序,它们也是“已登录”的,因为当从这些应用程序之一转到某个页面时,会获得新登录的会话。
当会话通过CSPSHARE=1
共享时,情况并非如此。例如,启动一个名为SMP
的应用程序,该应用程序已登录到会话x。该链接包含CSPSHARE=1
。EMP不必登录,因为它被放入经过身份验证的会话X中。过了一会儿,会话X超时并被销毁。SMP
和EMP
没有会话。
现在,单击包含SMP
页面的选项卡,像以前一样,我们被要求再次登录。SMP
现在处于已验证的会话中。然后,我们单击包含EMP
页面的选项卡。现在SMP
和EMP
之间没有联系。EMP
被要求再次登录,并被置于认证会话z中。
CSPSHARE
是一种非常脆弱的共享会话的方式,很容易被切断。一旦被切断,多次登录就会接踵而至。
在此版本中:仅当决定必须通过会话对象共享数据时,才使用会话共享。如果只需要身份验证共享(而不需要数据共享),请使用其他选项。
会话共享:如果需要会话共享,最好用相同的会话Cookie
路径命名所有应用程序(现在必须完全匹配)。可能需要重命名应用程序,例如/csp/sys/tool/smp和/csp/sys/tool/emp
。
如果需要会话共享,并且不能用相同的会话Cookie路径命名所有应用程序,那么使用CSPSHARE
元素。然而,以前的习惯,如超时后的多次登录,将包含表现自己。使用CSPSHARE
作为最后手段。
身份验证共享:如果设计要求共享身份验证信息,但不要求共享会话数据,请使用其中一个新的身份验证功能。
- 登录
Cookies
[进入应用程序时共享验证]
登录Cookies
保存最近登录用户的信息。当它们被启用时,新访问的应用程序试图使用该认证。
对于登录Cookies
,每个应用程序都在一个单独的会话中。一旦会话被认证,这些会话是独立的。因此,在一个会话中注销或超时不会影响其他会话。
未经身份验证的登录不会保存在登录Cookie
中。如果应用程序A
登录到用户Q
,那么应用程序B
未经身份验证,那么应用程序C
使用登录cookies
,应用程序C
将作为Q
登录。
按浏览器分组[持续共享身份验证]
如果希望一组应用程序充当身份验证群集,请使用按浏览器分组。
所有应用程序保持身份验证同步。如果一个人退出,他们都退出。如果一个用户登录到用户Q
,他们都登录到用户Q
。(唯一的例外是,如果任何应用程序未经身份验证,就身份验证而言,它们被视为贱民并被忽略。)