tag parameter net mvc asp asp.net-mvc encryption machinekey

asp.net-mvc - parameter - tag helper asp net core 2



IsolateApps causa que la clave de descifrado especificada tenga caracteres hexadecimales no vĂ¡lidos (3)

Estoy trabajando en un sitio de MVC 4 que usa Autenticación. El sitio requiere que especifique los valores clave de la máquina. Hice esto a través de la interfaz IIS después de haber deseleccionado el "generar automáticamente en tiempo de ejecución", generé los valores clave y habiendo seleccionado "generar una clave única para cada aplicación"

La entrada web.config se ve así:

<machineKey decryption="DES" decryptionKey="{hex-key value},IsolateApps" validationKey="{hex-key value},IsolateApps" />;

Si bien esto parece funcionar bien en otro proyecto web, causa el error "La clave de descifrado especificada tiene caracteres hexadecimales no válidos" en la máquina de desarrollo en la que estoy trabajando ahora (tanto en IIS-Express como en IIS 7.5).

Eliminar ",IsolateApps" de los valores clave resuelve el problema, pero como necesito esta opción en producción, no quiero eliminarla ahora solo para tener este problema cuando implemente.

¿Lo que da? El cuadro dev es un cuadro de SQL 2008 R2 con .net 2.0 y .net 4.0.


El modificador IsolateApps hace que ASP.NET genere una clave única para cada aplicación en su servidor. Esto solo es aplicable si obtiene ASP.NET para generar claves automáticamente en el tiempo de ejecución.

Si no obtiene ASP.NET para generar claves automáticamente, y en su lugar especifica las claves usando decryptionKey="{hex-key value}" , entonces la forma de hacer que ASP.NET use una clave diferente para cada aplicación es simplemente especifique una clave diferente en cada Web.config de la aplicación.

La GUI de configuración de IIS le permite crear un Web.config con una clave explícita junto con el modificador IsolateApps , que no es válido, y en mi opinión es un error en la GUI de configuración.


Esto se puede solucionar agregando la línea machineKey en su web.config, y especificando sus claves como se muestra a continuación (use su propia clave aunque, por supuesto, esta es fácil de adivinar):

<configuration> <system.web> <machineKey decryptionKey="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0" validationKey="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF00123456789ABCDEF0123456789ABCDEF0123456789ABCDEF00123456789ABCDEF0123456789ABCD" /> </system.web> </configuration>


Puede solucionar el problema agregando lo siguiente al elemento machineKey (compatibilityMode = "Framework20SP1") en la web.config See Link