c# - titel - title tag länge




Wie erzwinge ich, dass meine.NET-Anwendung als Administrator ausgeführt wird? (8)

Wie kann ich nach der Installation meines Programms auf einem Client-Computer die Ausführung meines Programms als Administrator unter Windows 7 erzwingen?


Das Hinzufügen eines requestedExecutionLevel Elements zu Ihrem Manifest ist nur die halbe Miete. Sie müssen daran denken, dass UAC kann. Wenn dies der Fall ist, müssen Sie die Überprüfung der alten Schule durchführen und einen Fehlerdialog erstellen, wenn der Benutzer kein Administrator ist
(Rufen Sie IsInRole(WindowsBuiltInRole.Administrator) im CurrentPrincipal Ihres Threads auf).


Die detaillierten Schritte sind wie folgt.

  1. Fügen Sie der Lösung eine Anwendungsmanifestdatei hinzu
  2. Ändern Sie die Anwendungseinstellung in "app.manifest"
  3. Aktualisiere Tag von "requestedExecutionLevel" zu requireAdministrator.

Beachten Sie, dass Sie mit diesem Code die Sicherheitseinstellungen von ClickOnce deaktivieren müssen. Gehen Sie dazu in Eigenschaften -> Sicherheit -> ClickOnce-Sicherheit


Ich habe etwas Code implementiert, um es manuell zu machen:

using System.Security.Principal;
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;
}

Klicken Sie in Visual Studio 2010 mit der rechten Maustaste auf den Namen Ihres Projekts. Hit "View Windows Settings", das generiert und öffnet eine Datei namens "app.manifest". Ersetzen Sie in dieser Datei "asInvoker" durch "requireAdministrator", wie in den kommentierten Abschnitten in der Datei erläutert.


Klicken Sie während der Arbeit an Visual Studio 2008 mit der rechten Maustaste auf Project -> Add New Item und Project -> Add New Item dann Application Manifest File .

In der Manifestdatei finden Sie das Tag requestedExecutionLevel und Sie können die Ebene auf drei Werte setzen:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

ODER

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

ODER

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

Um Ihre Anwendung als Administrator zu konfigurieren, müssen Sie die mittlere auswählen.


Nach

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

Sie möchten ein Anwendungsmanifest hinzufügen, wenn Sie noch kein Anwendungsmanifest haben oder nicht wissen, wie Sie eines hinzufügen. Da einige Projekte nicht automatisch eine separate Manifestdatei hinzufügen, gehen Sie zuerst zu den Projekteigenschaften, navigieren Sie zur Registerkarte " Anwendung" und überprüfen Sie, ob Ihr Projekt das Manifest am unteren Rand des Tap nicht ausschließt.

  • Als nächstes klicken Sie mit der rechten Maustaste auf das Projekt
  • Füge neuen Gegenstand hinzu
  • Zuletzt finden Sie und klicken Sie auf Anwendungsmanifestdatei


Sie möchten das Manifest ändern, das in das Programm eingebettet wird. Dies funktioniert auf Visual Studio 2008 und höher: Project + Add New Item, wählen Sie "Application Manifest File". Ändern Sie das Element <requestedExecutionLevel> in:

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

Der Benutzer erhält die UAC Eingabeaufforderung, wenn sie das Programm starten. Verwenden Sie weise; Ihre Geduld kann sich schnell abnutzen.







elevated-privileges