基于 CJKmkp/SeewoAutoLogin(ICC-CE 插件版)重构的 Windows 独立应用(WPF),为希沃白板提供 SSO 快捷登录能力。
项目主页:https://pro-qin.github.io/SeewoAutoLogin/ | 下载:https://github.com/Pro-Qin/SeewoAutoLogin/releases/latest
- 多希沃账号管理:账号密码登录、希沃官方二维码登录(120s 倒计时、过期/拒绝/网络错误状态)
- 账号列表分「正在生效(最多 6 个)/ 暂未生效」两栏,支持备注、标签、设为当前、删除、排序、移入/移出生效区
- 主界面账号列表右下角蓝色「+」按钮:点击后加号旋转 45° 并弹出二级菜单(密码添加 / 扫码添加),直接跳转对应页面
- 本地 SSO 网关(端口 24300):为希沃白板提供账号列表与登录令牌(
/getData/SSOLOGIN、/SSOLOGIN/{userId}、/SSOLOGOUT、/savedata) - 用户列表轮换:按 4/6 个账号分组,希沃快捷登录窗口短时间重开时切换账号组
- 扫码会话恢复与每日令牌自动刷新
- 账号密码 DPAPI 加密落盘;扫码令牌 DPAPI 加密存储(
%LOCALAPPDATA%\SeewoAutoLogin\Sessions) - 应用设置密码保护(进入设置/托盘切换账号需验证)
- 托盘常驻、单实例、自动 UAC 提权
- 开机自启(v1.9.0 起为计划任务):首次启动的欢迎界面会显示「开机自动启动」选项并回显当前状态(默认勾选、可当场取消);自启改用最高权限计划任务(登录触发 +
RL HIGHEST),开机后不再弹 UAC。创建失败时回退 HKCU 启动项,旧版本/安装包写入的注册表启动项会在管理员运行时自动升级为计划任务;启动项缺失或程序换目录导致路径失效时也会自动重建;卸载时一并清理 - WebView2 运行时自动修复:检测到未安装时自动下载官方安装器静默安装,安装成功后自动重试;失败时在主界面内显示原生修复面板(自动安装 / 重新检测 / 手动下载 / 查看日志),不再出现白屏
- 主界面加速:启动时预热 WebView2 环境与浏览器进程;前端资源落盘后经虚拟主机映射加载(浏览器并行解析 CSS/JS,无
NavigateToString的 2MB 上限),加载期间用遮罩覆盖,无白屏闪烁 - 首次打开主界面开场动画:
Seewo Autologin标题与Made by Qin_zzq副标题渐显并自大缩小,随后向左渐隐,遮罩渐隐进入主界面(每个进程只播放一次,点击可跳过) - 内置版本更新检查:默认使用 GitHub 镜像源(多个备用源自动降级,全部失败时用 jsDelivr 兜底),发现新版本在主界面提示并提供下载入口,可在设置中关闭自动检查
- 应用图标(exe / 托盘 / 主界面品牌)为多尺寸 squircle + 蓝色渐变 + 闪电标识,托盘按系统 DPI 选取最清晰尺寸
- WebView2 管理界面、SeewoOverlay 悬浮窗(一键切换账号并重启希沃)
- 遮罩显示管理:设置界面可控制「希沃打开但未登录时自动显示切换遮罩」(默认关闭),托盘/设置独立手动「显示遮罩」
- 一键诊断(含 WebView2 运行时检测)、日志查看器、配置导出/导入、中英文界面
- 开机自启升级为最高权限计划任务:登录触发、最高权限运行,开机不再弹 UAC;创建失败自动回退注册表启动项,卸载时一并清理;若配置要求自启但系统里启动项缺失(被杀软清理、程序换目录)会自动重建
- 主界面自检状态栏:实时显示 SSO 网关端口、hosts 映射、管理员权限、希沃进程状态,异常项标红并提供「一键修复」(重写 hosts 映射 + 重启网关)
- 账号健康巡检:一键校验每个账号的密码 / 扫码令牌是否仍然有效,失效账号在列表中标记并给出具体原因(凭据解不开会提示"需要重新录入",不再误报"密码错误")
- 批量导入账号:粘贴多行「账号,密码[,备注]」即可批量添加
- 配置自动备份与还原:配置每次变化自动归档(最多保留 20 份,内容去重),设置页可查看备份并一键恢复;配置改为原子写入并保留
.bak - SSO 网关安全加固:只服务本机回环来源(局域网其它机器即使伪造
Host: local.id.seewo.com也会被 403 拒绝);24300 端口被占用时自动切换备用端口;结束希沃 EasiAgent 前必须经用户确认,不再擅自结束进程 - 凭据与日志加固:应用设置口令改为 PBKDF2(12 万次迭代)+ 加盐,哈希值再用 DPAPI 加密落盘,并带失败次数锁定;日志按 5MB 轮转、保留 14 天,多线程写入不再丢日志
- 更新通道收敛:只信任 GitHub 官方 API(第三方镜像源移除),下载地址强制 https + 主机白名单校验,不再把任意 URL 交给
ShellExecute打开 - 内置使用教程(v1.10.0):首次启动在欢迎界面询问是否观看;教程依次演示「从任务栏托盘打开主界面」→「右下角 + 号与侧边栏两种添加账号入口」(聚光灯平滑跟随)→「添加后希沃登录界面长什么样」→ 完成。设置 → 帮助与维护里可随时重看
- 恢复出厂设置(v1.10.0):一键清空账号、扫码凭据、全部设置与配置备份,完成后自动重启回到首次引导流程(设置 → 帮助与维护)
- 更新包按网络动态选源(v1.10.0):下载更新时并发探测官方直链与 5 个常用加速通道,挑最快可用的下载,边下边校验 SHA256(发版时随 Release 提供
SHA256SUMS.txt),校验不通过自动换源;下载进度实时显示 - 残留代理自动回退(v1.8.2):系统里残留的本地代理(如
127.0.0.1:10809)端口不可达时自动改为直连;走代理的请求在传输层失败也会自动回退直连,避免「添加密码账号失败」和希沃侧「登录信息过期」
本地代理软件(Clash / v2ray 等)退出后,Windows 里可能仍残留指向本机端口的系统代理设置,所有请求都会打到没人监听的端口上:既加不了账号,SSO 网关也拿不到令牌,希沃侧就会提示「登录信息过期」。
从 v1.8.2 起程序会自动识别这种残留代理并改为直连(日志中会写「系统代理 xxx 未在运行,已自动改为直连」),不需要手动关闭系统代理;如果确实需要经代理出网(例如校园网必须走代理访问外网),先启动代理软件再使用本程序即可。
SSO 入口只在 local.id.seewo.com:24300 由本程序应答时才会出现。如果 24300 被希沃自带的 EasiAgent 占用(本程序会把网关启动到备用端口并告警),希沃就只会看到 EasiAgent 的响应,入口不会出现。
处理:主界面状态栏的「SSO 网关」显示端口不符时,点「一键修复」并在弹窗中允许结束 EasiAgent;若希沃正在使用中,先退出希沃白板再修复。修复后网关会独占 24300,重新打开希沃的登录界面即可看到入口。
该提示表示 SSO 网关没有拿到有效登录令牌,常见原因与处理:
- 打开「诊断」查看日志中的
SSOLOGIN/...: 登录失败 - ...,里面会写明具体原因; - 提示
网络连接失败:按上一条检查网络 / 代理; - 提示
账户不存在/账号或密码错误:保存的账号密码已失效,重新用密码添加账号; - 扫码账号提示
Token 换发失败,需要重新扫码:扫码会话已过期,重新扫码登录一次。
需要 Windows 和 .NET 8 SDK:
dotnet restore SeewoAutoLogin.csproj
dotnet build SeewoAutoLogin.csproj -c Release单文件发布(与 setup.iss 的 Source 路径一致):
dotnet publish SeewoAutoLogin.csproj -c Release -r win-x64 --self-contained false -o bin\Release\net8.0-windows10.0.19041.0\publish依赖:WebView2 运行时。轻量安装包在缺失时由程序自动下载安装;内置 WebView2 版把官方离线运行时安装器打进安装包,安装时检测到缺失才静默安装(适合断网或无法联网下载运行时的机器)。打包发布由 GitHub Actions 完成:推送 v* 标签即触发 .github/workflows/release.yml 编译两种安装包并创建 Release。
内置版安装包也可本地编译(需已安装 Inno Setup):
# 先把官方离线运行时安装器放到 publish\(约 203MB)
Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=2124701" -OutFile publish\MicrosoftEdgeWebView2RuntimeInstallerX64.exe
iscc /DBundleWebView2=1 setup.issRelease 提供两种安装包,功能完全一致,区别只是 WebView2 运行时怎么来:
| 安装包 | 体积 | 适用场景 |
|---|---|---|
SeewoAutoLogin_Setup_v1.12.10.exe |
约 8MB | 能联网:缺运行时由程序自动下载并静默安装 |
SeewoAutoLogin_Setup_v1.12.10_WithWebView2.exe |
约 210MB | 断网 / 内网机器:安装时离线装好 WebView2,杜绝运行时缺失导致的白屏 |
- 安装:运行上述任一个安装包(Inno Setup 打包,需要管理员权限)。
- 卸载:控制面板卸载程序卸载。卸载时会以
--uninstall启动应用,自动清理 hosts 中的local.id.seewo.com映射与本应用数据目录。
运行时自动 UAC 提权:希沃快捷登录依赖 hosts 映射与本地 SSO 网关,需要管理员权限。程序非管理员启动时会自动提权重启;若拒绝 UAC 会说明后果,可重试或以降级模式运行(降级下 SSO 快捷登录可能失效)。
- 配置:
%LOCALAPPDATA%\SeewoAutoLogin\config.json(账号密码为 DPAPI 密文,带dpapi:前缀) - 扫码令牌:
%LOCALAPPDATA%\SeewoAutoLogin\Sessions\*.bin - 前端资源:
%LOCALAPPDATA%\SeewoAutoLogin\web\;WebView2 用户数据:%LOCALAPPDATA%\SeewoAutoLogin\WebView2\ - 日志:
%LOCALAPPDATA%\SeewoAutoLogin\Logs\yyyy-MM-dd.log - SSO 网关只服务本机:除 CORS 仅放行本机来源、令牌 Cookie 带
HttpOnly外,还会在请求入口校验来源地址必须是回环(127.0.0.1 / ::1),局域网内其它机器伪造 Host 头也无法拉取账号列表或换取令牌 - 应用设置口令为 PBKDF2-SHA256(12 万次迭代 + 随机盐),哈希值本身再用 DPAPI 加密后才写入配置;连续输错 5 次会临时锁定
- 更新检查只读取公开的版本信息(GitHub API / jsDelivr),不上传任何本地数据
- 请只在可信设备上使用,不要将配置文件与日志发送给他人。
本项目功能对齐并超过上游 ICC-CE 插件版:上游 2026-07-18~07-19 的「账号切换 / 账号持久化 / 登录校验」等功能已全部迁移;本项目额外提供独立安装包、托盘、自启动、生效区管理、SSO 请求统计、DPAPI 密码加密等能力。插件专用部分(InkCanvas.PluginSdk、manifest.json、ICC-CE 路径)不适用。
GPL-3.0,见 LICENSE。上游项目同样为 GPL-3.0。
发布流水线支持 Authenticode 签名,需要自备代码签名证书:
- 在 GitHub 仓库 Settings -> Secrets and variables -> Actions 添加:
SIGNING_PFX_BASE64:PFX 证书文件的 Base64,可用[Convert]::ToBase64String([IO.File]::ReadAllBytes("cert.pfx"))生成SIGNING_PFX_PASSWORD:PFX 密码
- 把证书指纹填进
Services/AuthenticodeVerifier.cs的AllowedSignerThumbprints(SHA-256 或 SHA-1 都支持)。 - 打 tag 后,release.yml 会先给单文件 exe 和安装包签名,再生成 SHA256SUMS.txt。
没有配置 secrets 时流水线仍可发布,但更新器只校验 SHA256。注意:WinVerifyTrust 要求证书链受信任;如果使用自签名证书,需要先把根证书安装到目标机器的"受信任的根证书颁发机构"。
更新源只允许 GitHub 官方域名和 jsDelivr 等白名单镜像;自定义源命中白名单之外会回退到默认官方源。
- 卸载或迁移前必须运行安装目录里的卸载程序(
unins000.exe),或执行SeewoAutoLogin.exe --uninstall。 只有卸载流程会清理开机自启计划任务、hosts 中的local.id.seewo.com映射和本地数据。 - 设置里可以开启"退出时恢复 hosts";开启后每次正常退出都会移除本程序的 hosts 映射,下次启动自动写回。
- 直接删除程序目录不会触发上述清理,可能残留 hosts 映射和开机自启任务。