登录
标题栏上的用户小块、登录窗口和它的 PIN 键盘、切换与退出登录、身份一变对打开着的页面做了什么,以及浏览器和远程回路怎么登录。
登录会把一块屏幕上生效的权限从未登录角色换成某位用户的角色。它从来不是必须的:工作站以走过来就能用的那个身份打开,并且一直可用。登录只有一条路,却有两扇门,标题栏上的用户小块和用户页面的当前登录根节点,两扇门打开的是同一个窗口、走的是同一道校验。一个连查看都不被允许的浏览器会拿到第三个界面,也就是查看登录卡片,那是同一块面板去掉了外框。
登录不是对工作站的改动。运行时被免费模式的限制停住、每一次写配置都被拒绝的时候,它照样可用。
用户小块
这个小块坐在标题栏右侧,主题按键和一条分隔线之后,每一条路由、每一条连接上都有。它显示一个带圆点的人形字形(登录着是绿色,否则是灰色)和登录的那个显示名,没有人登录时则写登录。按下它就打开登录窗口。这个小块从不显示角色名称:退出登录时它是一句召唤,登录之后它是一个名字。
登录窗口
这个窗口的标题是登录;名册显示着而且已经有人登录时,标题是切换用户。有人登录着的时候,它的抬头写着“当前登录身份 ”,并带一个退出登录按钮。按 Esc 或者点窗口外面,它什么都不改就关掉。
名册
名册是这台工作站的每一位本地用户,按名册顺序排列,每一行有一个由首字母拼出的两字母标记、显示名,以及两种标记之一:一把锁,“需要 PIN”,或者一个回车箭头,“轻触即可登录”。轻触一位没有 PIN 的用户,立刻登录。轻触一位有 PIN 的用户,打开 PIN 那一步。每一块屏幕给出的名册都一样,不管上面登录的是什么角色。
名册为空时,窗口显示的是原因,而不是一张空单子:
| 情形 | 文字 |
|---|---|
| 还没有本地用户 | “本工作站还没有本地用户。第一个,也就是主管理员,在‘用户’页面上创建。” |
| 已发布的演示 | “这是已发布的演示,因此没有可以登录的账户。这里的一切都只能查看。” |
PIN 那一步
PIN 这一步显示所选用户的标记和名字、一个回到名册的返回按钮、抬头输入 PIN,以及 PIN 键盘:一个读数区,每输入一位显示一个点(从不显示数字本身),空着的时候显示可接受的位数范围;1 到 9 各一个键、一个删除键、0,还有一个确认键,输满 4 位就亮起来。到 6 位时键盘不再接受输入。它同时也是一个键盘控件:这一步打开时键盘取得焦点,数字往后追加,Backspace 删除,Enter 确认。点一下读数区,焦点就回到键盘上,而且不会弹出屏幕键盘。
被拒绝时消息留在这一步、留在键盘下面,并清空读数区好让你再试一次:
| 文字 | 什么时候 |
|---|---|
| 这个 PIN 不对。 | PIN 没有通过校验。 |
| PIN 输错太多次。请在 后重试。 | 某条浏览器回路撞上了错误 PIN 的次数上限;等待时间不到一分钟按秒写,超过一分钟按整分钟写。 |
| 登录失败。 | 一位没有 PIN 的用户被拒绝(在这中间被移出了名册)。 |
一次登录还在路上的时候,名册和键盘都不响应,于是连点两下也不会发起第二次尝试。
切换与退出登录
切换用户就是在已登录的屏幕上打开的同一个窗口:挑另一位用户,身份就变了,中间不用先退出登录。退出登录,在窗口的抬头处或者在当前登录面板上,把这块屏幕退回到“未登录”角色。在工作站自己的窗口上,它清掉工作站会话;在浏览器上,它只清掉那一条连接。
每一种结果都会报到这条连接的操作记录条上,也就是状态栏里:
| 结果 | 操作记录条上的文字 |
|---|---|
| 已登录 | 已以 身份登录。 |
| 被拒绝,没有人登录 | 登录被拒绝。 没有人登录。 |
| 被拒绝,有人登录着 | 登录被拒绝。 仍然以 身份登录。 |
| 被锁住 | PIN 输错太多次,登录已被阻止。请在 后重试。(后面跟着同样那句身份的话) |
| 已退出登录 | 已退出登录。 或者 已退出登录。 |
每一次尝试还会在事件页面的控制台里留下一行,组件写作 Station access,写明是哪个账户、这次尝试从哪里来(工作站自己的窗口写“shell 内嵌视图”,浏览器写“ 上的浏览器”),于是一个班次里的权限升降事后读得回来。一次成功的登录会盖上这位用户的最近访问时间,名册上显示的就是它。
按连接算的身份
工作站自己的窗口(那个内嵌视图,也就是桌面外壳本身)驱动的是工作站会话:在那里登录,就是在试验台前登录。每一个浏览器,不管是在网络另一头的平板上还是在工作站自己的机器上,都带着它自己的操作者:在那里登录只改变那一个浏览器,而且绝不会继承、也绝不会改动试验台前登录的是谁。用户小块、当前登录面板,以及一块屏幕上读到的每一项权限,回答的都是那块屏幕这条连接的情况,所以远程查看的人永远借不到坐在工作站前的那位管理员。
两条路还有一处不同。浏览器输错的 PIN 会被计数,按账户、按地址分别计:连错五次就把门关上一分钟,之后每再错五次等待时间翻倍,最多十五分钟;一串失败安静五分钟之后就被忘掉。工作站自己的窗口有意不设这个计数器:在试验台前敲键盘的人就在机器旁边,而锁定会是工作站唯一一种把自己的操作者关在门外的方式。
身份一变,什么跟着变
每一个界面都实时读取身份,所以一次登录、一次退出登录、一次角色改动或者一次移除用户,都立刻在它触及的每一条连接上生效:
- 导航栏按新角色能打开的条目重画。如果你所在的页面属于新身份看不见的那个条目,外壳就跳到它看得见的第一个条目上。
- 每个页面重新校验它自己那项权限;浏览器到达一条它的角色打不开的路由时,页面的位置上给出的是登录界面。
- 每一个动词、每一个字段都在被按下的那一刻重新校验角色,因此一块在旧身份下画出来的屏幕,不可能以旧身份行事。
- 用户页面上的一次角色改动,会到达持有这个角色的每一位用户,无论他们是否登录着;一位被移出名册的用户,在他持有的每一条连接上都掉回“未登录”角色。
- 被“可见于”清单挡在新角色之外的画面会离开 View 列表,而为其中之一敲进去的地址会静静地退回。
浏览器与远程访问
工作站自己机器上的浏览器是一条本地回环连接:它始终可以查看,在有人在它上面登录之前一直用“未登录”角色。另一台设备上的浏览器,只有远程访问开着才够得到这台工作站,而且还要它的身份持有远程访问(局域网)才看得了。出厂时那个开关在“未登录”角色上是关的,所以打开远程访问并不会暴露任何东西,直到某位持有这项权限的用户在那台设备上登录,或者你有意把它给了走过来就用的那个角色,供一台自助终端或者平板使用。
一个无权查看的浏览器拿到的不是任何页面,而是那张查看登录卡片:品牌标记、“Ganter Lab”、“工作站”,以及一块没有标题栏也没有导航栏的登录面板。名册上方那一行写明被拒绝的是什么:
| 那一行 | 什么时候 |
|---|---|
| 登录后即可从网络上查看这个工作站。 | 一条网络连接,它的身份没有“远程访问(局域网)”。上面有用户登录着时写:“ 的角色没有远程访问权限。请改用角色具备该权限的用户登录。” |
| 登录后才能打开这个页面。 | 一条可以查看的连接,落在它的角色打不开的路由上。有用户登录着时写:“ 的角色打不开这个页面。请改用角色能打开它的用户登录。”没有人登录时写:“这里没有人登录,而这个页面不对未登录角色开放。请改用角色能打开它的用户登录。” |
在一台“未登录”角色没有“远程访问(局域网)”的网络设备上退出登录,那台设备就掉回查看登录卡片。除非工作站提供 HTTPS(那是远程访问里的一个设置),否则 PIN 是明文过网络的。
登录不做什么
- 它不停止、不启动、也不改变运行时,并且不影响内置的 OPC UA 服务器,也不影响通过 MCP 连上来的代理。
- 它不会让这台工作站登录到它的 Ganter 账户。那是账户页面的事,而且它属于工作站,不属于某位用户。
- 它打不开角色并不持有的东西。提权恰好就是角色的那些开关;没有临时越权,也没有按用户开的例外。
- 它不会在输错 PIN 之后锁住工作站自己的窗口,而且从不记住 PIN。
- 在已发布的演示上无法尝试登录,因为它的名册按设计就是空的。