c# - Windows 登录的使用条件对话框

标签 c# .net windows authentication dialog

我需要设计一个“使用条件”对话框,在用户登录到 Windows XP 后显示给他们。在用户选中“我同意”框之前,它不得允许用户继续。必须无法使用任务管理器或任何其他方法将其关闭。它应该是全屏和模态的。 “我同意”将在后续登录期间自动保持选中状态,持续时间为 1 个月,之后用户需要再次选中。 HR 还想跟踪谁选中了复选框。

使用 .Net 可以实现这样的事情吗?我可以使用 C# 来设计它,但我不确定如何防止用户绕过对话框。

我知道 Windows 组策略允许在登录前显示对话框,但不允许复选框或任何自定义。

有什么想法吗?

最佳答案

在旧版本的 Windows 中,过去可以实现您自己的 winlogon.exe,即显示登录用户界面的应用程序。现在这并不容易,而且有充分的理由,Microsoft 在安全方面投入的精力比一般的 Joe Coder 投入的多得多!

一旦您通过登录,操作系统就会变得有点免费,但这只是因为 winlogon 的第一个任务是生成 EXPLORER.EXE,如果您将 shell 替换为你自己的,当你的进入条件得到满足时,它又会产生资源管理器,你会得到你想要的行为。正如您评论的那样,您将需要禁用任务管理器,因为这提供了启动其他应用程序的机会。

更改默认 shell(所有用户):

  1. 打开regedit(开始菜单>运行,然后输入regedit)
  2. 转到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon。
  3. 将 Shell 从 explorer.exe 更改为新的 shell 路径,例如您的应用程序
  4. 注销并重新登录。

更改默认 shell(仅限当前用户):

  1. 打开 regedit(开始菜单 > 运行,然后输入 regedit)。
  2. 转到:HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon。
  3. 添加一个名为 shell 的新字符串值(编辑 > 新建 > 字符串值)。并将值设置为新 shell 的路径,例如您的应用程序。
  4. 注销并重新登录。

关于c# - Windows 登录的使用条件对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1135568/

相关文章:

c# - 如何防止 WPF 中的 Winforms WebBrowser 上的触摸反馈?

c++ - 启动程序失败,错误代码为 1

python - Windows 上的 Pyreadline 任意自动完成

c# - 如何在 Web 表单中将字符串显示为 html 内容

c# - GDI+,从图形 DrawString() 中删除空格

c# - 如何在 C++ 中验证 Validate NCName

c# - 如何防止人们继续将 HTTP POST 循环到一个函数?

.net - .NET 的 System.Console 可以配置为从右到左打印吗?

c - 如何为 Windows 创建可执行 C 文件

.net - 如何解释 Excel 数字格式字符串以确定值是否应由 DateTime.FromOADate 解析