2011-12-01 33 views
12

Necesito encriptar ciertas partes de la configuración web. Después de leer algunos tutoriales, aprendí que usar la herramienta ASPNET_REGIIS es el camino a seguir. Esto es lo que estoy tratando en la actualidad Desde el símbolo del sistemaEncriptación de la configuración web mediante ASPNET_REGIIS

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

"No se encontró la sección de configuración 'system.web \ identidad'."


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

"No se encontró la sección de configuración 'system.web \ identidad'."


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

"Error al cifrar la sección 'system.web/identidad' utilizando proveedor de mensaje de error 'RsaProtectedConfigurationProvider' con el proveedor. El objeto ya existe"


Para tratar de ver si estoy recibiendo nada bien He intentado lo siguiente:

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

"Error al cifrar la sección 'connectionStrings' utilizando proveedor RsaProtectedConfigurationProvider 'Mensaje de error del proveedor: El objeto ya existe ".


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

"Error al cifrar la sección '' connectionStrings utilizando proveedor RsaProtectedConfigurationProvider 'Mensaje de error del proveedor: El objeto ya existe."


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

"No se encontró la sección de configuración 'DoesNotExist'."


¡Ayuda!

+1

Creo que la clave se almacena aquí: 'C: \ Documents and Settings \ All Users \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys', ¿lo ve? Si es así, intente eliminarlo y ejecutar el cifrado con 'connectionStrings' como prueba para ver si funciona. – Sam

+1

Para Windows 7 y en adelante, parece que aquí se guardan los 'C: \ Datos de programa \ Microsoft \ Crypto \ RSA \ MachineKeys' – dana

Respuesta

5

Prueba esto:

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

Si la sección que está intentando cifrar no está directamente bajo el elemento configuration es necesario proporcionar la ruta completa a la misma.

+0

Es como usted ha dicho, de esta manera: Pero todavía Im consiguiendo el mensaje que la sección no se puede encontrar. Obtuve el camino de la derecha haciendo clic en el archivo para asegurarme de que sea el camino correcto. Lautaro

+0

@Lautaro - Pude haber cometido como error con la barra invertida - intente utilizar un '/' en lugar. – Oded

+0

Lo intenté y un montón de otros como un experimento. Entonces parece que el corte hacia delante fue el camino a seguir. También parece que se encuentra el archivo de configuración web. Entonces no entiendo lo que estoy haciendo mal. Gracias por ayudarme con esto. – Lautaro

3

Aparece el mensaje de error "Objeto no encontrado" cuando aspnet_regiis se ejecuta como un usuario que no puede leer el contenedor de claves RSA.

Las claves se guardan en "C: \ Documents and Settings \ All Users \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys". El contenedor de clave predeterminado se denomina "NetFrameworkConfigurationKey". Asegúrese de tener permiso de lectura para este contenedor de claves.

Tenga en cuenta que deberá otorgar acceso de lectura a la identidad con la que se ejecutará su aplicación. El método más sencillo para hacerlo es a través de la herramienta aspnet_regiis: aspnet_regiis -pa "NetFrameworkConfigurationKey" "Yourdomain \ username".

29

Tuve un problema similar y cuando intenté ejecutarlo desde un símbolo del sistema con privilegios elevados ("ejecutar como administrador") resolvió el problema.

0

Estoy tan contenta con este post y me gustaría confirmar sobre cómo cifrar la cadena de conexión y también la manera de descifrarlo usando ASPNET_REGIIS Herramienta:

Para el cifrado:

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

Para descifrado:

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

NB:

  • Cuando estoy haciendo esta operación me encontré con algunos problemas me gustaría notificarlo:

1) La operación de cifrado presentada al principio porque no se ha instalado el tiempo de ejecución ASP.NET a IIS mediante la ejecución como el siguiente comando:

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

2) cuando estaba trabajando en el primer problema que tengo otra tonta :), que es cada vez que lo instalé obtuve este error:

Ha ocurrido un error: 0x8007b799 Debe tener derechos administrativos en esta máquina para ejecutar esta herramienta.

Solución: Al apagar el UAC se resuelve este problema. En el menú Inicio> Panel de control> Sistema y seguridad> Centro de acciones> Elegir su nivel de UAC: establezca esto en Nunca Notificar (Requiere reiniciar).

Gracias y deseo poder ayudar.

+0

Inicie el símbolo del sistema en modo administrador y luego proceda como se indica arriba. – Sam

3

1- cmd Ejecutar como administrador 2- ir a la carpeta de línea de comandos aspnet_regiis.exe

3 para cifrar: Aspnet_regiis.exe -pef "connectionStrings" "C: .. \ YourApplication" -PROV "DataProtectionConfigurationProvider

4-Para descifrar: aspnet_regiis.exe -pdf "connectionStrings" "C: .. \ YourApplication"

0

pruebo aspnet_regiis.exe -pef "connectionStrings" "C:..\YourApplication", si no se ejecute como administrador, tendrá electrónico rror "El objeto ya existe". Si lo ejecuta como administrador, funciona.

Cuestiones relacionadas