Аутентификация / авторизация в остальных приложениях .net MVC3, возвращающих xml - PullRequest
0 голосов
/ 20 августа 2011

У меня есть приложение 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 (с секретным ключом, известным только моему приложению) для шифрования идентификатора и имени пользователя вошедшего в систему пользователя и использования зашифрованного результата в качестве токена авторизации.

...