.net - 如何从 .NET 应用程序中删除 SeDebugPrivilege 权限
问题描述
我试图让我的程序以不需要本地管理权限在计算机上运行的方式进行编译。我从 Microsoft 的应用程序兼容性工具包中不断得到的一件事是我的应用程序请求 SeDebugPrivilege。
基本上我不确定如何/在哪里/何时请求这个特权令牌。我在禁用 DEBUG 和 TRACE 编译常量的情况下在“发布”中构建应用程序,我很好奇调试权限请求是否来自我正在使用的库?
有什么简单的方法可以告诉您在 Visual Studio 中如何/何时请求此权限?有没有更好的工具来调试这个?
解决方案
好吧,所以我想使用我从 Visual Studio 中的“构建”操作中获得的应用程序将附带嵌入其中的权限。这意味着第 1 步对我们来说是“发布”而不是“构建”来获取我的可执行文件。
第 2 步有点奇怪,而不是我最初在我的问题中提出的问题。由于我的应用程序在其名称中使用了短语“Updater”,显然这会触发一些 UAC 问题,因为它认为它是一个安装包。这里的问题是什么提示了我。在链接的 MSDN 页面之后,我了解到我应该在我的应用程序中包含清单,瞧!
所以,回顾一下:
#1 - 首先发布可执行文件
#2 - 包括清单
没有更多的 UAC。不再有 SeDebugPrivilege
推荐阅读
- swift - 线程 CompletionHandler Swift
- oracle - 如何在 PL/SQL 中声明和设置变量
- logging - GCP HTTPS LoadBalancer 访问日志和 istio 日志的区别
- python - 图形下的颜色区域
- javascript - Formvalidation.io:某个字段有效时的事件
- angular - 如何在 index.html 中隐式导入 metat utf-8?
- linux - 使用 LLVM 构建 SGX-SDK
- node.js - 另一个 nginx 入口重写目标问题
- java - 即使在更改 URL 后,Tomcat 也会继续重定向到 servlet
- android - 表不在android设备上创建,而是在虚拟设备上创建