2010-09-01 15 views
7

EN mi proyecto asp.net-mvc Tengo un AccountController que al iniciar sesión establece una cookie con las preferencias del usuario en Request.Response y luego hace un RedirectToAction. Al redireccionar, las cookies se restablecen y pierdo mi configuración.Response.Cookies se restablece cuando se llama a RedirectToAction

La única solución que se me ocurre es agregar los datos de la cookie en los tempdatos y luego ir a buscarlos más tarde en la acción de destino de RedirectToAction. Esto es, por supuesto, un poco al revés ...

¿Es esta una práctica común? ¿No hay una mejor solución? ¿Debo manejar mis cookies de manera diferente?

Respuesta

2

, utilizando TempData para esto es una práctica común, y esto es bastante de acuerdo con la forma en que se supone que se utilizará TempData - pasar datos temporales entre dos métodos de acción separados solamente por una redirección cliente.

Dado que la redirección desde la página de inicio de sesión podría ser a cualquier otro método de acción, puede implementar la funcionalidad para establecer cookies de TempData en su controlador base. Esto haría que cualquier método de acción cookies-a través de TempData sea compatible. Este es un escenario común cuando se muestran las notificaciones en las páginas, donde la notificación (como las notificaciones en este sitio) por lo general viajaría desde TempData a ViewData a la vista automáticamente.

+0

Tenía la esperanza de una mejor implementación. Si lo implemento de esta manera, perderé todo mi desacoplamiento .. –

+0

@boris ¿Qué desacoplamiento, específicamente? – bzlm

+0

Extraje el control de mi sesión de usuario de mis controladores para que las cookies no arruinen mis pruebas y con la mitad de mi mente tratando de deshacerme de la parte de las sesiones que no es descanso si puedo encontrar la manera. Ahora mis controladores necesitan saber la implementación de mi sesión nuevamente (obtener la cookie de tempdata) y mi sesión necesita saber sobre mi controlador (ponerlo en tempdata). –

Cuestiones relacionadas