C# 管理权限提示未显示在已执行进程中
我想将一个xml文件保存到本地文件系统上的MyDocuments文件夹中。为此,我使用以下方法: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
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));
System.Security.SecurityException
。
第三个似乎有效,但实际上并没有创建文件,只给出了我创建的“成功”消息。UAC提示从未出现过
在这一点上,我不知道如何解决这个问题。理想情况下,我只能对一种方法使用管理权限(使用第二次尝试),但对第三次尝试的修复也会有所帮助如何让UAC提示符出现(第三次尝试),或以其他方式解决此问题?您可以创建一个流程并使用以下属性:
Process.StartInfo.UseShellExecute = true;
Process.StartInfo.Verb = "runas";
然后在您的过程中,您可以保存文件。不幸的是,这不起作用。我想我需要调整
ProcessStartInfo
的其他属性。UAC对话框仍然没有显示。在尝试调整属性并使用用户名和密码后,使用SecureString
s手动输入管理员凭据,仍然不走运。如果您想要,您可以生成一个类似UAC弹出窗口的消息框?问题是,它正在使用管理员权限保存文件。。因此,当用户单击保存时,您可以显示一条消息,询问您是否希望授予管理员权限。然后,您的功能将相应地工作。我试过了,但我很感激你的解决方案。但是,用户名和密码的组合是不正确的。我甚至创建了另一个本地帐户,但它说他们错了。我在虚拟机上可能会很麻烦。