При попытке расшифровать билет FormsAuthentication всегда не удается проверить данные

Я использую новый webapi.

Теперь я не знаю, правильно ли я это делаю, но я пытаюсь настроить API так, чтобы он возвращал файл cookie аутентификации в заголовке HttpResponseMessages для использования в другом приложении mvc.

Я использую FormsAuthenticationTicket, так как думаю, что это то, что мне нужно использовать, например

  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.";
        //}
    }

теперь в моем контроллере входа в мое приложение mvc я вызываю службу и получаю значение данных из заголовка, который я установил в контроллере API.

   string data = response.Headers["result"].ToString();
   FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(data);

Каждый раз, когда я пытаюсь запустить FormsAuthentication.Расшифровать Я продолжаю получать сообщение об ошибке

Невозможно проверить данные.

Я предполагаю, что это связано с тем, что когда API шифрует данные, он использует какой-то ключ, о котором веб-сайт не знает. Я прав?

Кто-нибудь может помочь?

Спасибо

5
задан Diver Dan 12 April 2012 в 04:03
поделиться