管理权限提示未显示在已执行的进程中

本文关键字:执行 进程 显示 管理权 权限 提示 管理 | 更新日期: 2023-09-27 18:20:36

我想将一个xml文件保存到本地文件系统上的MyDocuments文件夹中。为此,我使用以下方法:

xmlDoc.Save(Path.GetPathRoot(savePath + saveName));

其中savePath

String qnPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "QuesitNote''");
String savePath = Path.Combine(qnPath, "SavedDecks");

并且saveName是由用户输入的、被格式化为不具有空格的string

由于行政权利的问题,我一直无法做到这一点。到目前为止,我已经尝试了很多解决方案,包括以下几种:

  • 更改清单文件中的用户类型
  • 使用属性尝试创建使用管理权限保存文件的授权函数
  • 创建一个单独的控制台过程(一个完整的其他程序),该过程需要清单文件中的管理员权限,然后尝试保存xml文件

第一个方法有效,但我只想要一个特定方法的管理权限,即我保存xml文件的方法。第二个给了我一个System.Security.SecurityException。第三个出现以工作,但实际上并没有创建文件,只给出我创建的"成功"消息。UAC提示从未出现。

在这一点上,我不知道如何解决这个问题。理想情况下,我只能对一种方法使用管理权限(使用第二次尝试),但对第三次尝试进行修复也会有所帮助如何使UAC提示出现(第三次尝试)、或以其他方式解决此问题

管理权限提示未显示在已执行的进程中

您可以创建一个进程并使用以下属性:

Process.StartInfo.UseShellExecute = true;
Process.StartInfo.Verb = "runas";

然后在您的过程中,您可以保存您的文件。