2010-09-21 12 views
23

¿Dónde puedo encontrar la sección de configuración machineKey para ASP.NET?ASP.NET machineKey sección de configuración predeterminada ubicación

No tengo uno en mi aplicación Web.config, no hay uno en la raíz Web.config y no hay uno en mi machine.config.

¿Esto significa que hay algún otro código predeterminado codificado en ASP.NET? Si es así, ¿cuáles son los valores predeterminados? (Para .NET 2 y 4)

Después de leer esto: http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx

que estaba esperando a encontrar algo como esto, en alguna parte:

<machineKey 
    validationKey="AutoGenerate,IsolateApps" 
    decryptionKey="AutoGenerate,IsolateApps" 
/> 

Editar: los 1,1 docs parece bastante clara wrt valores predeterminados: http://msdn.microsoft.com/en-us/library/w8h3skw9(VS.71).aspx pero los 4 documentos son bastante ambiguos http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx

Respuesta

32

machineKey se encuentra en System.web entrada en web.config

Consulte MSDN link para web.config Esquema.

Si no lo ve en su web.config, puede simplemente agregarlo allí.

De MSDN nuevo :-)

Para proporcionar tamper ViewState prueba, un código de autenticación de mensaje resumido (HMAC) se genera a partir del contenido ViewState y el hash se compara en las solicitudes posteriores. El atributo de validación de indica qué algoritmo de hash usar, y se establece de forma predeterminada en SHA1, que usa el algoritmo HMACSHA1. Las opciones válidas para hash incluyen SHA1 o MD5, aunque SHA1 es preferible porque produce un hash más grande y se considera criptográficamente más fuerte que MD5. El atributo validationKey de se usa junto con el contenido de ViewState para producir el HMAC. Si su aplicación está instalada en una granja de servidores web, debe cambiar validationKey de AutoGenerate, IsolateApps por un valor de clave generado manualmente específico.

La configuración predeterminada de los elementos <pages><machineKey> y se definen en el nivel de máquina web.config.comments archivo.

Para machineKey, son

<machineKey validationKey="AutoGenerate,IsolateApps" 
      decryptionKey="AutoGenerate,IsolateApps" 
      validation="SHA1" decryption="Auto" /> 

EDIT: para .NET 4.0, el algoritmo por defecto ha sido changed a SHA256 creo que la forma más fácil de encontrar los valores por defecto es ver la entrada en el MSDN para este valor de configuración.

MSDN 4.0 para machinekey es como a continuación. Los valores seleccionados son los valores predeterminados. Los valores en [] son ​​los otros valores opcionales que puede tomar el campo. Recuerdo haber leído en alguna parte esta es la forma típica en MSDN de denotar valores predeterminados para los valores de configuración.

<machineKey 
    validationKey="AutoGenerate,IsolateApps" [String] 
    decryptionKey="AutoGenerate,IsolateApps" [String] 
    validation="HMACSHA256" [SHA1 | MD5 | 3DES | AES | HMACSHA256 | 
    HMACSHA384 | HMACSHA512 | alg:algorithm_name] 
    decryption="Auto" [Auto | DES | 3DES | AES | alg:algorithm_name] 
/> 
+2

si no está allí (que no es) ¿cuáles son los valores predeterminados? –

+0

Editado la respuesta. ¿Eso ayuda? – InSane

+4

ah 'web.config.comments'. ¿para que es eso? solo para listar los valores predeterminados que se aplicarán si no se especifican en la raíz 'web.config'? Además, me gusta la forma en que la búsqueda de Windows simplemente no funciona, ¡o lo he encontrado yo mismo! gracias –

Cuestiones relacionadas