Estoy usando el nuevo webapi.Intentando descifrar un ticket de FormsAuthentication siempre que no puede validar los datos
Ahora no sé si estoy haciendo esto correctamente, pero estoy tratando de configurar mi API para que devuelva una cookie de autenticación dentro del encabezado HttpResponseMessages para usar en otra aplicación de mvc.
estoy usando el FormsAuthenticationTicket como creo que es lo que necesito para usar como
public HttpResponseMessage Get(LoginModel model)
{
if (model.UserName == "bob")
{
// if (Membership.ValidateUser(model.UserName, model.Password))
// {
var msg = new HttpResponseMessage(HttpStatusCode.OK);
var expires = DateTime.Now.AddMinutes(30);
var auth = new FormsAuthenticationTicket(1, model.UserName, DateTime.Now, expires,
model.RememberMe,"password",
FormsAuthentication.FormsCookiePath);
var cookie = new HttpCookie("user");
cookie.Value = FormsAuthentication.Encrypt(auth);
cookie.Domain = "localhost";
cookie.Expires = expires;
msg.Headers.Add("result",cookie.Value);
return msg;
// }
}
return new HttpResponseMessage(HttpStatusCode.Forbidden);
//else
//{
// return "The user name or password provided is incorrect.";
//}
}
ahora dentro de mi controlador de inicio de sesión en mi aplicación MVC que llamo el servicio y obtener el valor de los datos de la cabecera puse en el controlador api
string data = response.Headers["result"].ToString();
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(data);
Cada vez que intento ejecutar el FormsAuthentication.Decrypt Me aparece un error
No se puede validar los datos.
Supongo que es debido a que cuando la API encripta los datos, utiliza algún tipo de clave que el sitio web desconoce. ¿Estoy en lo cierto?
¿Alguien puede ayudar?
Gracias
¿Cuál es el valor de 'data' en esta línea' string data = response.Headers ["result"]. ToString(); '? – Aliostad