当使用 SIMATIC Logon ( 从 V1.3 开始 ) 时如何在运行时验证登录的用户?

说明:
WinCC 用户管理没有提供任何默认的功能可以用来通过密码查询来验证当前登录的用户。WinCC 提供触发和执行登录过程的函数。然而,这是意味着即使使用当前用户重新登录这也将被认为是一个全新的登录事件。登录通常链接到画面的切换( 调用启动画面) 和关闭所有的面板。n

目标:
通常,在执行切换动作之前,会有一个附加的密码查询需求来检测当前用户的登录情况。这样就不用重新登录。验证用户登录成功后才执行切换动作,同时这个操作动作被记录为一条操作员输入信息。这样可以防止非法操作,例如:当前用户在未从系统注销的情况下超过规定的时间未作任何操作。n

解决方案:
SIMATIC Logon 选件允许在运行状态验证用户。本条目描述的处理过程适用于 SIMATIC Logon V1.3 和更高版本软件。因为从 SIMATIC Logon 的这个版本开始支持 “SIMATIC Logon Development Kit”。相关的信息参考:n

  • 手册“SIMATIC Logon SIMATIC Electronic Signature” – 条目号: 34519648。n
  • 手册“SIMATIC Logon Programming Guide” (安装完软件后可以在以下路径找到:“…SimaticLogondevelopmentkit”)。

注意:
条目号24458070 描述的是 SIMATIC Logon up to and including V1.22 的处理过程。n

使用 “ISLSScripting” 接口“SIMATIC Logon Development Kit””允许运行时使用 VBScript 验证用户。本条目提供的 VBScript脚本 (函数 “SL_VerifyUser”) 是通过“SIMATIC Logon Development Kits” 的 “GetLogon”“AuthenticateUser”方法在运行状态来验证用户登录的。n

用法说明:
下表列出了必要函数的设置要求。

No. 过程
1 打开 Windows “计算机管理” ( 右击 “我的电脑”然后点击“管理” ) 然后点击“系统工具” > “本地用户和组”。
2 如果必要,那么在“用户”和“组”文件夹中创建一个新用户隶属于新组,然后关闭“计算机管理”。
3 在WinCC 中,打开“用户管理器”并在此创建和 Windows 系统中同样的用户名和同样的组名。
4 分配用户权限并检查“SIMATIC Logon” 的复选框。
5

打开全局脚本 VBS editor,创建一个新的项目模块并从 SL_VerifyUser.txt( 包含在 SL_VerifyUser.zip 中)保存脚本
或者
复制模块文件到 WinCC 项目的””文件夹中,编译并保存脚本。

6

在需要操作动作调用“SL_VerifyUser” 函数并检查返回值是否为 “true” ( 当前用户 )或者 “false” ( 别的用户或者登录对话中断 )。 在验证用户成功触发操作员动作和任何操作员输入。可以通过按钮的点击事件验证用户。n

If SL_VerifyUser = TRUE Then
‘<operator action>
‘<operator input>
Else
‘<error message>
End Ifn

注意:

  • 如果输入错误的用户名或者密码,登录窗口会重新打开。n
  • 条目24325381 提供了关于产生操作员输入信息的详细信息。

当使用 SIMATIC Logon ( 从 V1.3 开始 ) 时如何在运行时验证登录的用户? SL_VerifyUser.zip ( 3 KB ) n

功能:
下表列出了该脚本的结构和功能。

No. 描述
1 声明与初始化
在脚本的开始部分定义了常量,并且声明和初始化使用到的标签名。为了能够在运行时使用 WinCC VBScript 脚本访问 SIMATIC Logon 接口,COM 接口必须通过调用“CreateObject” 来初始化。
2 验证当前登录用户 n

  • 使用 “GetLogon” 方法能够获得当前登录用户的信息。n
  • “AuthenticateUser” 方法用来打开用户登录对话框。

    当使用 SIMATIC Logon ( 从 V1.3 开始 ) 时如何在运行时验证登录的用户?
    Fig. 01

    在此对话框,用户能够交互的输入用户名和密码。登录对话框被初始化,因此“Change password…” 按钮无法操作同时 “Comment” 输入域也被隐藏。系统检测用户输入信息。直到正确验证用户后,该方法关闭登录对话框并把登录数据作为结果返回。如果验证失败 ( 错误的用户名或者密码 ),登录对话框会保持打开状态,同时会显示一个简短的错误提示信息。用户可以再一次输入用户名和密码。如果点击 “Cancel” 按钮,那么登录对话框关闭。这种情况下方法会返回一个登录对话框被终止的错误状态信息。

    当登录对话框打开的时候,“AuthenticateUser”方法不允许使用当前已经登录的用户预设“ User name”字段。因此,当用户被成功验证后“AuthenticateUser”方法在循环中被再次调用,但是被验证用户并不是当前登录用户。

    因此在登录对话框的标题栏上也显示当前已经登录的用户名。通过这种方式提示当前用户已经被正确验证。

注意:

  • 当注销或者新登录系统时,使用 “AuthenticateUser”方法打开的登录对话框不会自动关闭。因此当注销或者新登录系统时需要再次调用“GetLogon”方法来确保用户验证工作完全正确。
  • “HMIRuntime.Trace”语句只是为了在 “ Global Script diagnostics window”或者 APDIAG 的“Output Window”中输出诊断信息。
3 释放资源并且关闭函数
在这部分,用到的资源会被再次释放并且关闭函数。成功执行验证用户后,“SL_VerifyUser” 函数返回值是 TRUE,否则返回值是 FALSE。

版本:
这些程序是使用以下版本软件做的测试。

组件

产品和名称
PC operating systemMicrosoft Server 2003 SP2
Standard tools
HMI softwareWinCC 7.0
OptionsSIMATIC Logon 1.4 SP1
Controllers

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc334376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论