# 账户

> 账户页面的账户那一行：通过系统浏览器把工作站连到它的 Ganter 账户、已连接和离线两种状态、退出登录，以及这次登录到底属于谁。

**账户**那一行是账户页面的第一张卡片：工作站登录它那个 Ganter 账户。这次登录属于工作站，不属于某个人：一个人在系统浏览器里登录一次，这台计算机上的每个 Windows 用户共用这个会话，直到有人把工作站退出登录。它给运行时发许可（见[订阅](account-subscription)），并让反馈表单能发出去；它对屏幕什么都不做，屏幕由本地用户治理。

这张卡片每一种身份都读得到，它的两个命令分开判定。连接是自由的，只要是在工作站自己的屏幕上：它不从谁手里拿走什么，而且刚装好的工作站还没有任何本地用户可以当管理员。断开会放掉那个给整条工作台的运行时发许可的席位，所以从工作站有了本地用户那一刻起，它就需要这条连接上的**管理本地用户**权限（Admin 角色）。浏览器连不上账户，不管是工作站本机上的还是从网络上来的，因为登录会在工作站的计算机上打开浏览器。两种情形下，卡片都仍旧把这个命令画出来，只是变灰，理由就写在按钮上。

## 已退出登录 {#signed-out}

| 元素 | 它显示什么或者做什么 |
| --- | --- |
| 标题 | 登录 Ganter Lab |
| 文字 | “把本工作站连到你的 Ganter 账户。系统会打开你的网页浏览器进行安全登录，应用永远看不到你的密码。这次登录属于工作站，这台计算机上的每个 Windows 用户共用它。” |

| 命令 | 作用 | 什么时候变灰（情形） | 什么时候不画出来（角色） |
| --- | --- | --- | --- |
| 登录 | 开始浏览器登录。 | 页面是在浏览器里打开的，而不是在工作站的窗口里时，同一台计算机上的浏览器也算在内；提示文字读作“账户要在工作站自己的屏幕上连接，因为登录会在工作站的计算机上打开浏览器。” | 从不。 |
| 创建账户 | 打开 Ganter Lab 网站的注册页面。在工作站的窗口上它在默认浏览器里打开；在普通浏览器里它开一个新标签页。把地址交给 Windows 的，是工作站自己的窗口，而且无论在这里还是在应用把你送出去的别处，它只打开网址：不是网址的一律回一句“这不是这台工作站会打开的网址。什么也没有打开。” | 从不。 | 从不。 |

## 正在等待浏览器 {#waiting-for-the-browser}

按下登录，这张卡片就变成**正在等待浏览器…**，文字是“请在刚打开的浏览器窗口里完成登录。完成后会自动回到这里。”，带一条进度条和一个**取消**按钮。应用在一个本地回环端口上听着浏览器回来；密码是在网站上敲的，绝不在应用里。取消、没做完就关掉浏览器，或者出了错，都会让卡片回到已退出登录的状态，而错误文字落在卡片下面的**连接详情**里。

## 已登录 {#signed-in}

| 元素 | 它显示什么 |
| --- | --- |
| 名称 | 这个账户的显示名称；资料里没有名称时写 **Ganter 账户**。 |
| 电子邮件 | 这个账户的电子邮件地址。 |
| 状态圆点和文字 | 服务器答复时是绿色，写“已连接到 Ganter 服务器。”；不答复时是警示色调，写“离线，正在使用已保存的登录信息；会自动重新连接。” |

| 命令 | 作用 | 什么时候变灰（情形） | 什么时候不画出来（角色） |
| --- | --- | --- | --- |
| 退出登录 | 先弹出标题为**退出登录**的确认对话框，问一句“退出登录会为这台计算机上的每个 Windows 用户断开本工作站的 Ganter 账户。要退出登录吗？”，然后交还工作站那个许可证，请求服务器吊销这个会话，并清掉存下来的登录信息。在使用永久许可证运行的工作站上，对话框还会加上“本工作站使用永久许可证运行：退出登录会把许可证交还给账户，在再次登录之前，工作站将以免费模式运行。”工作站通知网站期间，按钮显示“正在退出登录…”，旁边出现**不再等待**；按下它就不再等待，无论怎样，退出登录都会在工作站上完成。 | 工作站有本地用户，而身份没有“管理本地用户”时；提示文字读作“只有管理员才能断开本工作站的账户。” | 从不。 |

卡片前缘染的颜色和那个圆点的状态一样，所以连接是否健康比别的什么都先读到。

### 在线和离线 {#online-and-offline}

工作站存下一个刷新令牌，按这台机器加密（放在 `%ProgramData%\GanterLab` 下面，每一个本地 Windows 账户都可写，好让它们中的任何一个都能续期它），连同最近那份资料和订阅快照，以及服务器最后一次发给这台工作站的许可证。每一次启动，缓存里的身份立刻显示出来，一次静默续期在后台跑起来：一次网络失败让工作站留在离线状态，带着缓存里的身份，而只有服务器给出的权威性拒绝（会话被吊销、过期，或者这个账户不能再登录）才会清掉这次登录。一个至少每 90 天用上一次的会话，绝不会再要求打开浏览器；一台完全离线 90 天的工作站要重新走浏览器登录。许可证也守同一个期限：离线的工作站，在最后一次连上服务器之后的 90 天以内一直是已获许可证（见[订阅](account-subscription#free-mode-and-the-runtime-countdown)）。永久许可证没有这样的期限：即使登录以这种方式被清除，它也会一直离线留在工作站上（见[永久许可证](account-subscription#perpetual-license)）。

在工作站上退出登录，不会让浏览器从网站上退出登录；网站自己那个会话是浏览器的。

## 连接详情 {#connection-details}

最近一次登录、续期或者刷新失败时，卡片下面会出现一个**连接详情**折叠块，里面是那段错误文字。工作站在其他方面在线的时候它照样显示着，所以一次保住了缓存状态的失败刷新不会被藏起来。有一条消息值得留意：“服务器没有签发刷新令牌；这次登录挺不过一次重启。”意思是这个会话只活在内存里。

## 那条临时身份通知 {#the-temporary-identity-notice}

工作站是用一个随机 id 向服务器表明自己身份的，这个 id 在首次使用时生成，按整台机器保存；许可证发给的就是那个 id。装着它的那个文件读不了也写不了的时候，工作站就跑在一个**临时身份**上，而订阅那一行会带头立起一条醒目的严重提示条，**本工作站正在使用临时身份**：

> 这台计算机无法读写保存工作站身份的那个文件，因此它不被识别为你的授权工作站所对应的那一台。应用每次启动都会生成一个新身份，运行时会不断被免费模式的计时器停掉，账户里也会堆满从未真实存在过的工作站。请确认运行 Ganter Lab 的那个 Windows 账户可以读写 %ProgramData%\GanterLab 文件夹，然后重启应用。事件控制台里，在 Licensing 来源下记着确切的原因。

工作站登录与否，这条提示条都显示，因为处在那种状况下的工作站，无论账户怎么说，读起来都是没有许可证的。

## 发送了什么 {#what-is-sent}

| 步骤 | 什么东西离开工作站 |
| --- | --- |
| 浏览器登录 | 和 Ganter 服务器之间标准的授权码流程，请求身份、电子邮件、离线访问和订阅读取。 |
| 登录之后、启动时、每 24 小时，以及账户页面每一次打开时 | 工作站的登记：它那个随机 id、Windows 机器名、应用版本，以及设了的时候，那个系统集成商 ID；然后是一次取订阅文档的请求。 |
| 退出登录 | 交还许可证和吊销令牌，两者都是尽力而为。 |

不发送任何硬件指纹、任何序列号，也不发送任何本地用户名。重装过的磁盘会变成一台新工作站；旧的那条登记在没有登录的 90 天之后从账户里老化掉。

## 演示配置 {#the-demo-profile}

在那份隔离出来的演示配置上，卡片显示的是一个本地替身：**Demo profile**、`demo@ganterlab.invalid`、“已连接到 Ganter 服务器。”，背后什么都没有。退出登录和登录都不经浏览器就能用，把这份配置在“有许可证”和免费模式之间切换；没有任何东西到达服务器。

## 这一行不做什么 {#what-the-row-does-not-do}

- 它不会让某个人登录。一块屏幕上登录的是谁，那是用户小块和[用户](users)页面的事；这次登录是工作站的。
- 它不改变任何屏幕显示什么或者允许什么。权限来自本地角色。
- 它失败时不挡住任何东西。够不到服务器的工作站保留它缓存的状态并照常工作；没有登录的唯一后果就是那个免费模式时段。
- 它不会为了连接一台还没有管理员的工作站而先要一位管理员。连接是自由的；一旦工作站有了本地用户，要“管理本地用户”的是那个放掉席位的断开。
- 它不会对按不了它们的身份藏起登录和退出登录：两个都照样画出来，变灰，理由写在按钮上。它也照旧不让远程浏览器借用试验台前的那位管理员，因为这项权限是在按下按钮的那条连接上读的。
