我正在使用直接 html 5 和 web api restful 服务构建一个新的 asp.net web api 应用程序。我已经在使用表单身份验证和 [Authorize] 属性来保护我的 Web api 调用。我试图尽可能地忠于宁静的原则。
我正在模仿现有应用程序的功能,该应用程序使用两因素身份验证并使用 asp.net Web 表单。双重身份验证不用于登录,而是用于通过站点和插件远程访问另一台计算机的附加任务。
现有的 Web 应用程序使用会话状态来存储生成并通过电子邮件发送给用户的 pin。然后,当用户输入 pin 时,会根据会话状态中的 pin 进行检查。
所以看起来我的选择是......
- 加密在服务器上生成的 pin 并在 javascript 中将其发送回客户端。此选项似乎存在安全风险。这将是一个更宁静的选择。
- 一位同事建议使用类似于 Amazon S3 使用公钥/私钥对的方法。
- 尽管使用了 web api,但仍使用会话状态。
那么在这些选项中,最好的选择是什么?还有其他可能性吗?