Решение, которое я обнаружил, заключалось в том, что я объединил свой установщик с загрузчиком, который запросит UAC, если у пользователя нет соответствующих прав.
Если вы не хотите использовать этот подход, этот код может вам помочь.
public static ActionResult CheckPrivileges (сеанс сеанса) {
bool isadmin = false;
System.Security.Principal.WindowsIdentity wi = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal wp = new System.Security.Principal.WindowsPrincipal(wi);
if (wp.IsInRole("Administrators"))
isadmin = true;
else
isadmin = false;
if (isadmin)
{
return ActionResult.Success;
}
else
{
if (System.Environment.OSVersion.Version.Major >= 6) // Windows Vista or higher
MessageBox.Show("Administrator priveleges are required to install the application. Please right click the setup file and select 'Run as administrator'.", "Mesaage", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
MessageBox.Show("Administrator priveleges are required to install the application.", "Mesaage", MessageBoxButtons.OK, MessageBoxIcon.Error);
return ActionResult.Failure;
}
}