En mi proyecto MVC3, tengo un controlador con un atributo [Autorizar]. Tengo una presentación de formulario sin ajax, que redirige al usuario (como se esperaba) a la pantalla de inicio de sesión, si él/ella no ha iniciado sesión.mvc 3, jquery ajax y autenticación de formularios
Sin embargo, ahora tengo un formulario que se envía con jquery ajax, y ¿cómo puedo hacer lo mismo? ¿Redirige al usuario a la pantalla de inicio de sesión, si él/ella no está autorizado? Después de un inicio de sesión exitoso, el usuario debe ser redirigido a la acción inicial.
controlador
[Authorize]
[ValidateInput(false)]
public JsonResult SubmitChatMessage(string message)
{
if (!string.IsNullOrEmpty(message))
{
// Do stuff
}
// Return all chat messages
return GetChatMessages();
}
JQUERY cliente
$(document).ready(function() {
$("form[action$='SubmitChatMessage']").submit(function (event) {
$.ajax({
url: $(this).attr("action"),
type: "post",
dataType: "json",
data: $(this).serialize(),
success: function (response) {
// do stuff
}
});
return false;
});
});
puedo ver desde la ventana de la consola de Firebug, que devuelve el servidor:
GET http://domain/Account/LogOn?ReturnUrl=%2fProductDetails%2fSubmitChatMessage
Mirando hacia adelante a su ayuda !
actualiza con las posibles soluciones
- The different solutions are outlined here
- Another variant of one of the solutions
- Tutorial which might give some inspiration
¿De qué sirve un inicio de sesión AJAX si lo que hace es redireccionar de todos modos? ¿Por qué no solo usar un formulario regular? – RPM1984
El punto es que los usuarios que inician sesión deberían poder enviar algunos datos a un controlador con ajax. ¿Qué hacer si no están conectados? ¿Cómo manejar ese escenario con jquery ajax? – Nima
bien, mi mal - no entendí bien. Respuesta agregada – RPM1984