У меня есть приложение MVC3 rest, где все действия контроллера возвращают ответы xml вместо обычных ответов html (view).
Пользователи могут зарегистрироваться в качестве участника, передав свою электронную почту в качестве параметра (http://localhost/Account/Register?Email=test@test.com) для действия регистрации. Электронное письмо с подтверждением отправляется на электронную почту, и пользователю необходимо посетить страницу для завершения регистрации (ввод пароля и т. Д.) Когда пользователь заканчивает процесс регистрации (или входит в систему), я хочу вернуть результат XML с токеном (авторизовать), идентифицирующим зарегистрированного пользователя, который затем может быть сохранен и использован другими запросами для получения, например, информации о пользователе.
Могу ли я использовать encTicket в качестве токена?
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
userName,
DateTime.Now,
DateTime.Now.AddMinutes(30),
isPersistent,
userData,
null);
string encTicket = FormsAuthentication.Encrypt(ticket);
Если я возвращаю xml-ответ со строкой encTicket, могу ли я передать encTicket в качестве аргумента действию контроллера, которое затем расшифровывает его и использует для авторизации пользователя и возврата информации о пользователе в виде xml?
У меня такое ощущение, что это неправильный подход. Есть ли другой способ создать токен безопасности, срок действия которого истекает и который можно передавать между действиями контроллера? Я пытаюсь избежать доморощенного кода, так как это проблема безопасности ...
Я также рассмотрел возможность использования AES (с секретным ключом, известным только моему приложению) для шифрования идентификатора и имени пользователя вошедшего в систему пользователя и использования зашифрованного результата в качестве токена авторизации.