【发布时间】:2015-08-13 06:24:47
【问题描述】:
我们正在使用 Backbone + MVC 4 构建单页应用程序。在服务器端 (MVC 4),我们使用了 MVCController(非常少)和 webapi 控制器。在这个应用程序中,到目前为止,我们已经使用了基于表单的身份验证。此外,我们还将用户信息存储在 Sessions 中。现在,客户也需要通过他的其他 Windows/移动应用程序来使用这些 webapi。我们相信我们可以公开所有的 webapi 控制器。但这里有几个问题:
1) 目前,所有的 webapi 都使用表单身份验证进行保护。但是当这些 webapi 将与 windows/native 移动应用程序一起使用时,基于表单的身份验证将不起作用(因为它在内部使用 cookie)。我们必须为其提供基于令牌的身份验证。基于令牌的身份验证与基于声明的身份验证相同吗?
2)我们的授权框架有点复杂,我们必须在用户登录时从数据库中获取所有权限并将它们存储在会话中。对于进一步的请求,我们从会话中获取用户权限。内部 sessionId 在 cookie 中传递。当 WebApi 被其他应用程序(本机和移动)访问时,这将不起作用。如果我们能找到任何其他方法将这些信息存储在服务器上,我们可以考虑从应用程序中删除会话使用。
如果没有任何效果,我们可以考虑再创建一个项目,我们将在其中复制所有 webapi 并在那里使用基于令牌/基于声明的身份验证。
提前致谢
【问题讨论】:
标签: c# asp.net-mvc-4 backbone.js asp.net-web-api