【发布时间】:2014-06-02 00:07:37
【问题描述】:
我是 AngularJS 的新手,正在尝试为我的新 Web 应用程序评估它。
要求:
我将拥有一个 ASP.NET Web API,它将被 Android、iPhone 和 Web 应用程序 (ASP.NET MVC) 使用。 ASP.NET Identity 将在 Web API 中实现。三个应用都会调用Web API的login方法来获取auth token。
问题:
我的问题是如何让 ASP.NET MVC 服务器端身份验证 工作(与 Web API 同步,因此我不必单独登录 ASP.NET MVC)同时 Angular 进行调用获取 HTML 模板/视图、JavaScript 文件或其他资源。我浏览了很多关于 AngularJS 的文章和博客,但仍然找不到符合我要求的安全模型。
可能的解决方案:
直接调用 ASP.NET MVC 应用程序而不是 Web API 是一个好主意吗?ASP.NET MVC 应用程序将调用 Web API 进行登录,一旦通过身份验证,将身份验证令牌保存在会话中再加上创建一个 FormsAuthentication cookie 并在 cookie 数据中保存加密的身份验证令牌。此外,在 HTML 中的某处设置 auth 令牌在 ng-init 中,以使令牌在 AngularJS 范围内。现在,当 AngularJS 尝试调用 ASP.NET MVC 应用程序以获取 HTML 时,然后通过将 cookie 解密数据与会话中的身份验证数据匹配来对用户进行身份验证/授权。此外,AngularJS 将在标头中发送 auth 令牌以直接调用 Web API 方法,以便所有后续调用通过 Web API 进行数据操作。
【问题讨论】:
标签: asp.net-mvc angularjs asp.net-web-api forms-authentication asp.net-identity