我有一个MVC3休息应用程序,其中所有控制器操作都返回xml响应,而不是通常的html(视图)响应。
用户可以通过将其电子邮件作为参数(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);
如果我使用encTicket字符串返回xml响应,我可以将encTicket作为参数传递给控制器操作,然后控制器操作将其解密并使用它来授权用户并将有关用户的信息作为xml返回吗?
我觉得这不是正确的做法。有没有其他方法可以创建一个过期的安全令牌,并且可以在控制器操作之间传递?我试图避免使用自制程序代码,因为这是一个安全问题......
我还考虑使用AES(只有我的应用程序知道的密钥)来加密登录用户的ID和用户名,并使用加密结果作为授权令牌。