2011-12-01 19 views
12

Ho bisogno di crittografare alcune parti della configurazione web. Dopo aver letto alcuni tutorial, ho imparato che usare lo strumento ASPNET_REGIIS è la strada da percorrere. Questo è quello che sto provando in questo momento: "Non è stata trovata la sezione di configurazione 'system.web \' identità'" dal prompt dei comandiCrittografia Web Config utilizzando ASPNET_REGIIS

ASPNET_REGIIS -pef "identity" "D:\IIS\admin.mySite.com" 


ASPNET_REGIIS -pef "system.web\identity" "D:\IIS\admin.mySite.com" 

"non è stato trovato La sezione di configurazione 'system.web \' identità'."


ASPNET_REGIIS -pef "system.web/identity" "D:\IIS\admin.mySite.com" 

"Impossibile crittografare la sezione 'system.web/identita' utilizzando provider 'RsaProtectedConfigurationProvider' Messaggio di errore dal provider:. Oggetto già esistente"


Per provare e vedere se che ottiene niente di buono ho provato la seguente:

ASPNET_REGIIS -pef "connectionStrings" "D:\IIS\admin.mySite.com" 

"Impossibile crittografare la sezione 'connectionStrings' 'RsaProtectedConfigurationProvider' Messaggio di errore dal provider tramite provider: L'oggetto esiste già. "


ASPNET_REGIIS -pef "connectionStrings" "D:\IIS\admin.mySite.com" 

"Impossibile crittografare la sezione 'connectionStrings' 'RsaProtectedConfigurationProvider' Messaggio di errore dal provider tramite provider:. Oggetto già esistente"


ASPNET_REGIIS -pef "DoesNotExist" "D:\IIS\admin.mySite.com" 

"non è stata trovata La sezione di configurazione 'DoesNotExist'."


Help!

+1

Credo che la chiave venga memorizzata qui: 'C: \ Documents and Settings \ Tutti gli utenti \ Dati applicazioni \ Microsoft \ Crypto \ RSA \ MachineKeys', lo vedi? Se è così, prova a rimuoverlo ed eseguire la crittografia con 'connectionStrings' come test per vedere se funziona. – Sam

+1

Per Windows 7 e poi, sembra che sono memorizzati qui 'C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys' – dana

risposta

5

Prova questa:

ASPNET_REGIIS -pef "system.web/identity" "D:\IIS\admin.mySite.com" 

Se la sezione che si sta tentando di cifrare non è direttamente sotto l'elemento configuration è necessario fornire il percorso completo ad esso.

+0

è come hai detto tu, in questo modo: Ma ancora im ricevendo il messaggio che la sezione non può essere trovata. Ho ottenuto il percorso da destra cklicking il file per assicurarsi che sia la strada giusta. Lautaro

+0

@Lautaro - forse ho fatto come errore con la barra posteriore - provare a utilizzare un/'' invece. – Oded

+0

L'ho provato e un sacco di altri come esperimento. Quindi sembra che la barra dei passi avanti fosse la strada da percorrere. Inoltre, sembra che il file di configurazione web sia stato trovato. Quindi non capisco cosa sto sbagliando. Grazie per avermi aiutato con questo. – Lautaro

3

Il messaggio di errore "oggetto non trovato" si verifica quando aspnet_regiis viene eseguito come utente che non può leggere il contenitore di chiavi RSA.

I tasti si trovano in "C: \ Documents and Settings \ All Users \ Dati applicazioni \ Microsoft \ Crypto \ RSA \ MachineKeys". Il contenitore di chiavi predefinito è denominato "NetFrameworkConfigurationKey". Assicurati di avere l'autorizzazione di lettura per questo contenitore di chiavi.

Nota che è necessario concedere l'accesso in lettura all'identità sotto la quale verrà eseguita l'app. Il metodo più semplice per farlo è tramite lo strumento aspnet_regiis: aspnet_regiis -pa "NetFrameworkConfigurationKey" "Yourdomain \ username".

29

Ho avuto un problema simile e quando ho provato a eseguirlo da un prompt dei comandi con privilegi elevati ("Esegui come amministratore") risolto il problema.

0

Sono così felice con questo post e vorrei confermare su come crittografare la stringa di connessione e anche il modo di decifrare utilizzando ASPNET_REGIIS Strumento:

Per la crittografia:

aspnet_regiis.exe -pef "connectionStrings" "D:\ProjectAcc" 

Per decrittazione:

aspnet_regiis.exe -pdf "connectionStrings" "D:\ProjectAcc" 

NB:

  • Quando sto facendo questa operazione ho trovato alcuni problemi Vorrei notifica:

1) Il funzionamento della crittografia depositato in un primo momento perché non ho installato il runtime ASP.NET per IIS eseguendo come il seguente comando:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -i

2) quando lavoravo al primo problema che ho avuto un altro uno sciocco :), che è ogni volta che l'ho installato ho ricevuto questo errore:

Si è verificato un errore: 0x8007b799 È necessario disporre di diritti amministrativi su questa macchina per poter eseguire questo strumento.

Soluzione: la disattivazione di UAC risolve questo problema. Dal menu Start> Pannello di controllo> Sistema e sicurezza> Centro operativo> Scegli il tuo livello UAC: imposta questa opzione su Mai notifica (è necessario un riavvio).

Grazie e vorrei poterti aiutare.

+0

Avviare il prompt dei comandi in modalità amministratore quindi procedere come indicato sopra. – Sam

3

1- Run cmd come amministratore 2- selezionare la cartella riga di comando aspnet_regiis.exe

3 per crittografare: aspnet_regiis.exe -pef "connectionStrings" "C: .. \ YourApplication" -PROV "DataProtectionConfigurationProvider

4 per decifrare: aspnet_regiis.exe -PDF "connectionStrings" "C: .. \ YourApplication"

0

ho test aspnet_regiis.exe -pef "connectionStrings" "C:..\YourApplication", se non eseguire come amministratore, avrà e rror "L'oggetto esiste già". Se eseguito come amministratore, funziona.

Problemi correlati