Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 管理权限提示未显示在已执行进程中_C#_Winforms_Process_Console_Admin - Fatal编程技术网

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

C# 管理权限提示未显示在已执行进程中,c#,winforms,process,console,admin,C#,Winforms,Process,Console,Admin,我想将一个xml文件保存到本地文件系统上的MyDocuments文件夹中。为此,我使用以下方法: xmlDoc.Save(Path.GetPathRoot(savePath + saveName)); 其中savePath为 String qnPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "QuesitNote\\"); String savePath = Path.C

我想将一个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
是用户输入的
字符串
,格式化为没有空格

我一直无法做到这一点,因为与管理权的问题。到目前为止,我已经尝试了一系列解决方案,包括:

xmlDoc.Save(Path.GetPathRoot(savePath + saveName));
第一个方法有效,但我只需要特定方法的管理员权限,即保存xml文件的方法。 第二个给了我一个
System.Security.SecurityException
。 第三个似乎有效,但实际上并没有创建文件,只给出了我创建的“成功”消息。UAC提示从未出现过


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

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

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

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

不幸的是,这不起作用。我想我需要调整
ProcessStartInfo
的其他属性。UAC对话框仍然没有显示。在尝试调整属性并使用用户名和密码后,使用
SecureString
s手动输入管理员凭据,仍然不走运。如果您想要,您可以生成一个类似UAC弹出窗口的消息框?问题是,它正在使用管理员权限保存文件。。因此,当用户单击保存时,您可以显示一条消息,询问您是否希望授予管理员权限。然后,您的功能将相应地工作。我试过了,但我很感激你的解决方案。但是,用户名和密码的组合是不正确的。我甚至创建了另一个本地帐户,但它说他们错了。我在虚拟机上可能会很麻烦。