c# - dll 请求的执行级别

标签 c# .net dll windows-vista uac

我有一个正在使用的 WinForms 应用程序。在 Vista/Win7 中有一小部分功能需要以管理员身份运行。我了解如何在 list 中为应用程序设置 requestedExecutionLevel。诀窍是,我不想要求用户以管理员身份运行整个应用程序,而只是其中的一部分。所以我希望大部分功能都作为调用者运行。

如果我将管理功能放在一个 dll 中,有没有办法将其标记为 requireAdministrator?我尝试使用 MT 向 dll 添加 list ,但这似乎不起作用。我需要做什么?

最佳答案

不,没有办法在逐个 DLL 的基础上区分应用程序的执行级别。这是一个进程范围的设置。您必须在您的应用程序中调用另一个进程,该进程以提升的权限运行该 DLL 中的代码。

您确实有一个选择是使用 rundll 或 rundll32 程序直接运行 DLL。这是一个独立的 Windows 程序,旨在加载和运行特定的 DLL。您可以提升 rundll 进程并获得所需的隔离。

用谷歌搜索 rundll 会给你很多关于如何使用它的建议 :)。

关于c# - dll 请求的执行级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1882906/

相关文章:

c# - 如何在 .NET 中以 SOLID 方式实现库级跟踪和诊断?

c# - 有没有一种方法可以访问 .net 实体属性,而无需使用数组循环直接调用它?

c# - 给定字符串的特定索引号,如何在 C# 中获取完整的单词?

.net - 引用同一 .NET DLL 的旧版本和新版本

c# - 从屏幕上的控件分离后,RichTextBox 文本在 VisualBrush 中消失

c# - 为什么将派生类的实例分配给类型不是实例之一的变量,而是其基类

c# - 错误地将莫斯科时间转换为 UTC

c# - 将 ASP.NET MVC 模型封装为可重用程序集

c++ - 使用 WINAPI 的复杂库依赖项目中未解析的外部符号

asp.net - 嵌入式非托管 DLL 无法在 ASP.NET 中加载