PDA

View Full Version : [C#] Ottenere privilegi di admin


Unrealizer
03-02-2011, 18:54
Salve a tutti :D

Sto lavorando ad un piccolo software che ha come unico scopo quello di scaricare una lista di file da un server e dei relativi hash, e quindi provvedere ad aggiornare/sostituire i file necessari... Il problema č che per fare questo devo avere privilegi di admin, e quindi avevo pensato di fare in modo che il programma li richiedesse tramite la classica finestrella dell'UAC... temporaneamente ho risolto cosė:

private void Form1_Load(object sender, EventArgs e)
{
WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
bool hasAdministrativeRights = principal.IsInRole(WindowsBuiltInRole.Administrator);
if (!hasAdministrativeRights)
{
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.Verb = "runas";
processInfo.FileName = Application.ExecutablePath;
try
{
Process.Start(processInfo);
MessageBox.Show("Ok!");
}
catch (Win32Exception)
{
MessageBox.Show("Doh");
}
Application.Exit();
}
}

e cosė "funziona", ma non fa altro che lanciare un'altra istanza del programma con i privilegi di admin! Come posso fare per fare in modo che il programma richieda i privilegi alla prima esecuzione?

Unrealizer
08-02-2011, 15:40
uppettino? :cry: