【发布时间】:2021-06-30 20:57:57
【问题描述】:
是否可以通过隐藏(“控制面板\所有控制面板项\设备管理器”中的人机界面设备)启用/禁用触摸屏,使用标准用户权限(没有提升的权限/管理员访问权限)?
我正在用 C# 编写一个应用程序。如果我没有通过 Visual Studio 上的“运行方式”启动我的应用程序,则安全性会阻止访问。
我当前的设置/限制有哪些替代方案:
- 标准用户(基本权限)
- 具有密码的管理员帐户 一个安全的加密文件。
- 标准用户无法通过 UAC 授予权限,因为他没有权限。
- 使用此代码检查用户是否具有提升/管理员权限:
return new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
目前已测试但无法正常工作:
-
使用
startInfo.Verb = "runas";处理 标准用户不能接受 UAC 来运行需要管理员权限/提升的进程。 Elevating process privilege programmatically? -
应用程序清单: 标准用户不能接受 UAC 来运行需要管理员权限/提升的应用程序。 How do I force my .NET application to run as administrator?
潜在的替代品?
- ACL ???
- App.manifest:使用我的“使用 Zenwork 或 SCCM 的 IT 团队打包程序”中的 install.msi 将其部署到计算机用户?
- 作为“本地服务”或“系统”运行的服务和一个应用程序使用我的“使用 Zenwork 或 SCCM 的 IT 团队打包程序”中的 install.msi 调用服务方法以将其部署到计算机用户?
【问题讨论】:
-
想一想……如果有办法让程序自行提升,那么该功能不会有太大用处。您可以让具有管理员权限的人以管理员身份运行您的程序(在这种情况下,每次您的程序运行时都会提示他们),但非管理员用户将始终是 nin-admin
-
不是在标准用户上以提升的权限运行防病毒软件吗?
-
它们通常作为服务安装并使用与适当令牌关联的权限运行
标签: c# security hid elevated-privileges access-rights