2014-04-01 9 views
5

Ich habe ein WPF-Projekt in Visual Studio 2013, dieses Projekt hat zwei Schaltflächen. Die erste Schaltfläche sagt Start Service und die zweite sagt Stop Service. Wenn ich Visual Studio als Administrator ausführe, funktionieren die Schaltflächen. Aber wenn ich Visual Studio ohne Berechtigungen öffne, wird die InvalidOperationException-Ausnahme angezeigt.Wie erzwinge ich, dass mein Projekt in Visual Studio 2013 immer als Administrator ausgeführt wird?

Wie erzwinge ich meinen Projektstart mit Privilegien, wenn Visual Studio nicht als Administrator ausgeführt wird?

Ich habe app.manifest mein Projekt und Änderung für

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

aber es hat nicht funktioniert.

Zum Starten oder Stoppen meines Dienstes verwende ich den ServiceController.

+1

möglich Duplikat [?, Wie mein C# WinForms-Programm als Administrator auf jedem Computer laufen zu zwingen] (http://stackoverflow.com/questions/3598824/how -for-force-my-c-sharp-winforms-program-run-as-administrator-on-any-computer) – Dmitry

+0

Diese Lösung funktioniert nicht für meine. – CampDev

+0

Ihr Kommentar hat Ihr Problem nicht gelöst. –

Antwort

2

Das ist interessant, und es scheint, dass Sie Berechtigungen ändern müssen, wie das Projekt läuft, versuchen Sie folgendermaßen vorgehen

  • gehen Eigenschaften zu projizieren> Sicherheit
  • ermöglichen Klick einmal Sicherheitseinstellungen und wählen Sie Volle Vertrauenswürdigkeit Anwendung

Mehr infor in diesem Link WPF security

5

Als Torben M . Philippsen erwähnt in seinem article:

  • In Visual Studio 2010 (Ich denke, das gleiche zu VS2008 gilt, aber ich habe es nicht getestet) direkt Ihr Projekt klicken und wählen Sie „Neues Element hinzufügen“
  • hinzufügen eine Anwendungsmanifestdatei - der Standardname lautet app.manifest.
  • Innerhalb der Manifest-Datei, ändern Sie die bestehende Konfiguration aus

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

    Um

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
    
  • speichern und die Manifest-Datei schließen.

  • Bitte beachten Sie, dass Ihre Manifest-Datei nirgends in Ihrer Lösung angezeigt wird. Um dies zu beheben, klicken Sie im Lösungsexplorer auf die Schaltfläche "Alle Dateien anzeigen".
  • Wichtig: Klicken Sie mit der rechten Maustaste auf die Manifestdatei, und fügen Sie sie zum Projekt hinzu. Dies benötigen wir, um VS anzuweisen, die Manifestdatei beim Kompilieren unserer Anwendung zu verwenden.
  • Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie "Eigenschaften".
  • Auf der Registerkarte Anwendung der untere Abschnitt, wählen Sie die Manifest-Datei:

Selecting manifest file

Manifest-Datei Auswahl

  • Kompilieren und Ausführen der Anwendung. Wenn Ihre UAC-Einstellungen aktiviert sind, werden Sie aufgefordert, die Anwendung im erhöhten Modus zu starten.

  • Manchmal kann es nützlich sein zu überprüfen, ob Ihre Anwendung tatsächlich im erhöhten Modus ausgeführt wird oder nicht. Vielleicht finden Sie diese CodeSnippet nützlich:

    WindowsPrincipal myPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); 
    if (myPrincipal.IsInRole(WindowsBuiltInRole.Administrator) == false) 
    { 
        //show messagebox - displaying a messange to the user that rights are missing 
        MessageBox.Show("You need to run the application using the \"run as administrator\" option", "administrator right required", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
    } 
    else 
    { 
        MessageBox.Show("You are good to go - application running in elevated mode", "Good job" ,MessageBoxButtons.OK, MessageBoxIcon.Information); 
    } 
    
Verwandte Themen