2014-04-01 16 views
5

Ho un progetto WPF in Visual Studio 2013, questo progetto ha due pulsanti. Il primo pulsante dice Start Service e il secondo dice Stop Service. Quando eseguo Visual Studio come amministratore, i pulsanti funzionano. Ma quando apro il mio Visual Studio senza i privilegi, viene visualizzata l'eccezione InvalidOperationException.Come forzare il mio progetto in Visual Studio 2013 a funzionare sempre come amministratore?

Come forzare l'avvio del mio progetto con i privilegi quando Visual Studio non viene eseguito come amministratore?

ho aggiunto app.manifest al mio progetto e cambiare per

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

ma non ha funzionato.

Per avviare o interrompere il servizio, utilizzo ServiceController.

+1

possibile duplicato di [? Come forzare il mio programma C# WinForms eseguire come amministratore su qualsiasi computer] (http://stackoverflow.com/questions/3598824/how -to-force-my-c-sharp-winforms-program-run-as-administrator-on-any-computer) – Dmitry

+0

Questa soluzione non ha funzionato per il mio. – CampDev

+0

Il tuo commento non ha funzionato il tuo problema. –

risposta

2

Questo è interessante e sembra è necessario modificare i permessi di come il progetto funziona, prova a fare il seguente

  • Vai al progetto immobili> Sicurezza
  • abilitare click-una volta le impostazioni di sicurezza e selezionare la fiducia completa applicazione

Più infor in questo link WPF security

5

Come Torben M . Philippsen cita nel suo article:

  • In Visual Studio 2010 (immagino che lo stesso vale per VS2008, ma io non ho ancora testato esso) tasto destro del mouse il progetto e selezionare “aggiungi nuovo elemento”
  • Add un file manifest dell'applicazione: il nome predefinito sarà app.manifest.
  • All'interno del file manifesto, modificare la configurazione esistente da

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

    Per

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
    
  • salvare e chiudere il file manifesto.

  • Si prega di notare che il file manifest non verrà visualizzato da nessuna parte nella soluzione. Per risolvere il problema, in Solution Explorer, fai clic sul pulsante "Mostra tutti i file".
  • Importante: fare clic con il pulsante destro sul file manifest e aggiungerlo al progetto. Ne abbiamo bisogno per dire a VS di utilizzare il file manifest durante la compilazione della nostra applicazione.
  • Fare clic con il tasto destro del mouse sul progetto e selezionare "Proprietà".
  • Nella scheda dell'applicazione, la sezione inferiore, selezionare il file manifesto:

Selecting manifest file

selezione file manifesto

  • compilare ed eseguire l'applicazione. Se le tue impostazioni UAC sono abilitate, ti verrà richiesto di consentire l'avvio dell'applicazione in modalità elevata.

  • A volte può tornare utile per verificare se l'applicazione è effettivamente in esecuzione in modalità elevata o meno. Forse Troverete questo codesnippet utile:

    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); 
    }