2008-12-04 18 views
10

Tengo algunas preguntas sobre cuándo y cómo se encripta viewstate en asp.net 3.5. Por ejemplo, si tengo una entrada machinekey en mi web.config como: decryptionKey = "AutoGenerate, IsolateApps" validación = "AES" descifrado = "Auto" />asp.net cifrado de viewstate

Está encriptada estado de vista en este punto ? ¿O debo especificar viewStateEncryptionMode en la sección de la página también?

Además, ¿es posible encriptar una cookie de autenticación de formulario, pero no encriptar ViewState al mismo tiempo?

Gracias por cualquier ayuda.

Respuesta

12

Los controles en la página pueden solicitar que se use el cifrado para ViewState, pero incluso esta solicitud puede ser anulada por la configuración de página.

La enumeración ViewStateEncryptionMode tiene tres valores: Auto, Siempre y Nunca. El valor predeterminado es Auto.

ViewStateEncryptionMode.Auto

En este modo, ASP.NET cifrar el ViewState de una página o ningún control en la página solicite. Tenga en cuenta que esto significa que todo ViewState está encriptado, no solo ViewState para el control que lo solicita. Una gran parte del costo de rendimiento asociado con el cifrado está en la parte superior. Por lo tanto, encriptar todo el ViewState es más rápido que realizar operaciones de cifrado por separado si más de un control realiza la solicitud.

ViewStateEncryptionMode.Never

Como era de esperar, en este modo ASP.NET no cifrará el ViewState, incluso si la aplicación está configurada para el cifrado y controles en la página han solicitado. Si sabe que no es necesario encriptar los datos involucrados en la página, entonces puede ser seguro establecer el modo Nunca. Sin embargo, en este momento es raro que la documentación sobre un control revele lo que se está guardando en ViewState, por lo que deberá tener cuidado si existe la posibilidad de que se expongan los datos confidenciales.

ViewStateEncryptionMode.Always

En este modo, ASP.NET no espera a que un control en la página para solicitar el cifrado. ViewState siempre está encriptado. Al trabajar con datos confidenciales, es una buena práctica utilizar el cifrado.

Fuente: http://msdn.microsoft.com/en-us/library/aa479501.aspx