【发布时间】:2011-10-22 23:28:06
【问题描述】:
我之前的问题没有得到正确答案,并且得到了很多诸如“我们不能这样做”之类的答案。
这就是为什么我决定详细解释我的问题,如果可以的话请帮助我,或者请你的朋友回答这个问题。
现在我的问题:
第 1 步:
我创建了一个 C# 程序来编辑各种 Windows 注册表。 要编辑 Windows 注册表,我们必须具有管理员权限。 我的程序在管理员模式下运行良好,没有任何问题。
第 2 步:
我希望我的程序也可以在受限用户模式下运行。如果很少有人不明白我在这里所说的是我想将上面的 C# 代码运行到访客模式。 在访客模式下,我们无法更改 Windows 注册表的限制。 因此,当我执行我的应用程序时,我收到一条要求输入管理员密码的通知。 插入管理员密码后,我的应用程序运行良好。
第 3 步:
我希望我的应用程序不能每次都在访客/受限帐户中询问管理员密码。 我还希望在访客模式下我的应用程序应该可以工作。 我还希望在访客模式下,我的应用程序应该能够访问和更改 Windows 注册表。
第 4 步:
很多人回复我说我们不能在访客模式下执行此操作,因为 Windows 出于安全目的限制用户编辑 Windows 注册表。所以如果你也有这种感觉,请不要回答这个问题。 我要回答那些人,所有运行到访客模式的优秀防病毒软件都可以访问 Windows 注册表。
第 5 步:
既然我知道管理员密码,那么有什么方法可以在我们的 C# 代码中保存管理员密码并绕过一次又一次询问管理员密码的弹出消息。
我们有什么方法可以指示 Windows 我们的应用程序将在管理员模式下运行,并且不会一次又一次地询问管理员密码
在访客模式下运行的防病毒应用程序如何执行所有操作,例如从 system32 文件夹中删除病毒以及在病毒攻击后重置注册表。这些杀毒应用从不询问“我们在 System32 文件夹中发现病毒,由于我在访客模式下运行,无法删除病毒,所以请输入管理员密码以便我删除病毒”
希望你明白我的意思?
我想开发一个 C# 应用程序,它应该可以在任何模式(Admin/Guest/Limited)下运行,并且应该能够创建、编辑和删除 Windows 注册表。
注意:请不要用“右键单击并以管理员身份运行”来回答这个问题。
【问题讨论】:
-
Antitivus 软件包以管理员身份运行,并且大部分时间还安装驱动程序 (.sys)。
-
仅仅因为您(显然是拼命地)想要某样东西,并不意味着它是可能的(尤其是但肯定不限于第 5 步,第 1 点)。你应该重新考虑你的设计。
-
您要查找的内容称为impersonation - 编辑了链接。甚至可以在仅代码块的基础上进行。如果您想存储管理员密码,但要注意安全风险,并且永远不要将其作为纯文本存储在任何地方,至少要使用加密。
-
@mtijn:是的,但他不是。他明确表示他不想要“通知”(最有可能是 UAC 提示),尤其是不输入密码。 AFAIK,您无法从代码中规避 UAC 提示,更不用说密码插入了。徒劳的。
-
他说他知道密码.. 无论如何,here 是如何以编程方式登录用户,这也用于我前面提到的关于模拟的链接中。
标签: c# windows security authentication registry