Sto utilizzando il nuovo webapi.Tentativo di decodificare un ticket FormsAuthentication non è sempre in grado di convalidare i dati
Ora non so se lo sto facendo correttamente ma sto cercando di impostare la mia API per restituire un cookie di autenticazione all'interno dell'intestazione HttpResponseMessages da utilizzare su un'altra applicazione mvc.
Sto usando la FormsAuthenticationTicket come penso proprio quello che ho bisogno di usare come
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.";
//}
}
ora nel mio controller di accesso alla mia domanda mvc io chiamo il servizio e ottenere il valore dei dati dall'intestazione ho impostato in il controller api.
string data = response.Headers["result"].ToString();
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(data);
Ogni volta che provo l'esecuzione del FormsAuthentication.Decrypt Continuo a ricevere un errore
Impossibile convalidare i dati.
Suppongo sia dovuto a quando l'API crittografa i dati che utilizza un tipo di chiave di cui il sito Web non è a conoscenza. Ho ragione?
Qualcuno può dare una mano?
Grazie
Quale id il valore di 'data' in questa riga' string data = response.Headers ["result"]. ToString(); '? – Aliostad