Administratorrechte für eine Anwendung erforderlich machen

Es gibt Fälle, in denen man nicht darum herumkommt, für eine Anwendung Administratorrechte erforderlich zu machen. Egal, welche Sprache man wählt, immer kann es nötig sein Aktionen durchzuführen für die mehr Rechte erforderlich sind, als die eines normalen Benutzers. Im Visual Studio kann man hierfür der Anwendung einfach eine Manifest-Datei hinzufügen. Diese Anwendungsmanifest-Datei ist eine simple XML-Struktur. Weiterlesen

Auf Administratorrechte prüfen

Hin und wieder ist es erforderlich, dass eine Anwendung oder Teile einer Anwendung mit Administratorrechten ausgeführt werden. Hierfür gibt es in .NET die Möglichkeit eine Überprüfung auszuführen und ggf. die Anwendung mit entsprechenden Rechten neuzustarten. Fälschlicherweise wird bei diesen Methoden oft angenommen, dass hiermit die Administratorrechte des Benutzers geprüft werden, dem ist aber nicht so – wozu auch. Es werden die Rechte geprüft mit welcher die Anwendung derzeit ausgeführt wird, nicht mehr und nicht weniger. Und natürlich kann man das so genannte UAC-Token (User Account Control) welches Windows zum Rechte setzen verwendet auch beim Start der Anwendung anfordern.

Aber zunächst einmal der einfache Teil; das Auslesen der aktuellen Rechte welche die Anwendung besitzt. Hierfür können wir uns eine Methode schreiben, welche sich lediglich dem „System.Security.Princial“-Namespace bedienen muss. Diese Methode würde wie folgt aussehen:

static bool RunAsAdmin()
{
    WindowsIdentity identity = WindowsIdentity.GetCurrent();
    if (identity != null)
    {
        WindowsPrincipal principal = new WindowsPrincipal(identity); 
        return principal.IsInRole(WindowsBuiltInRole.Administrator);
    }

    return false;
}

Nun da wir die Möglichkeit haben zu bestimmen ob wir die ausreichenden Rechte haben, wäre es hilfreich ggf. die Anwendung mit Administratorrechten erneut ausführen zu können. Weiterlesen