嗨每一个我都有一个问题,我需要创建一个应用程序,可以从服务器上的路径获取一些文件,所以如果PC上的用户是管理员,系统工作顺利,但如果用户不是管理员,系统需要工作比如“Run AS ...”然后选择管理员用户! 问题是如何强制应用程序以管理员用户身份运行Code?
这是我的代码
private void frmMain_Load(object sender, EventArgs e)
{
if (!IsUserAdministrator())
{
this.Text += " Not Admin";
RunAs("System_Updater.exe", "aMohamady@al-Sadhan.Com", "major@123");
}
else
{
this.Text += " Administrator";
}
}
和
public bool IsUserAdministrator()
{
bool isAdmin;
try
{
WindowsIdentity user = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(user);
isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
}
catch (UnauthorizedAccessException ex)
{
isAdmin = false;
}
catch (Exception ex)
{
isAdmin = false;
}
return isAdmin;
}
private SecureString MakeSecureString(string text)
{
SecureString secure = new SecureString();
foreach (char c in text)
{
secure.AppendChar(c);
}
return secure;
}
private void RunAs(string path, string username, string password)
{
ProcessStartInfo myProcess = new ProcessStartInfo(path);
myProcess.UserName = username;
myProcess.Password = MakeSecureString(password);
myProcess.UseShellExecute = false;
Process.Start(myProcess);
}
但是当我在非管理员用户中使用此代码时,应用程序启动多次? 我重新启动Windows以使其停止
请任何人帮助我............