Tôi đang sử dụng webapi mới.Cố gắng giải mã vé FormsAuthentication luôn không thể xác thực dữ liệu
Bây giờ tôi không biết nếu tôi làm điều này một cách chính xác nhưng tôi đang cố gắng thiết lập api của tôi để trả lại cookie xác thực trong tiêu đề HttpResponseMessages để sử dụng trên một ứng dụng mvc khác.
Tôi đang sử dụng FormsAuthenticationTicket như tôi nghĩ nó những gì tôi cần phải sử dụng như
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.";
//}
}
tại trong điều khiển đăng nhập của tôi trên ứng dụng MVC của tôi, tôi gọi cho dịch vụ và nhận được giá trị dữ liệu từ tiêu đề tôi đặt trong bộ điều khiển api.
string data = response.Headers["result"].ToString();
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(data);
Mỗi lần tôi cố gắng chạy FormsAuthentication.Decrypt tôi tiếp tục nhận được một lỗi
Không thể xác nhận dữ liệu.
Tôi giả định rằng khi api mã hóa dữ liệu, nó sử dụng một số loại khóa mà trang web không biết. Tôi có đúng không?
Ai đó có thể giúp bạn không?
Cảm ơn bạn
Giá trị id của 'dữ liệu' trong dòng này' string data = response.Headers ["result"]. ToString(); '? – Aliostad