ASP.NET MVC + Web API2 + AngularJS 授权和认证

ASP.NET MVC + Web API2 + AngularJS authorization and authentication

我正在开发一个大型应用程序,它将在后端包含 ASP.NET MVC 和 AngularJS+Web Api2。以前我在我的应用程序中使用过 MVC 表单授权。有很多示例如何通过 AngularJS+Web Api 使用基于令牌的授权,但找不到适合这两种情况的完整解决方案。

请提供一些信息,我可以在其中阅读有关此主题的信息,可能是分步示例、教程或博客,其中描述了两者的混合授权。

  1. 在您的 WebAPI2 应用程序 here is a good tutorial on implementing ASP.Identity 2 中实施 ASP.Net 身份 2。最好将 WebAPI 和 MVC5 应用程序放在不同的项目中。

  2. 决定您是想直接从您的 AngularJS 应用程序还是从您的 MVC 应用程序

  3. 连接到 API
  4. 如果直接从您的 AngularJS 应用调用 API 方法,请使用 this directive for OAuth2。将 access_token 存储在本地存储或 cookie 中。

  5. 如果从您的 MVC 应用程序内部调用 API 方法,请将 access_token 存储在客户端(使用本地存储或 cookie)并将其用于每个打电话给你的API。 here is a tutorial showing how to use AngularJS with ASP.Net MVC5

  6. 确保您在生产环境中使用安全连接 (https)。

更新

您可以使用 WebAPI 的默认 ASP.Net 提供商。但默认提供程序最适合与 EnityFramework 一起使用。
我不是 EF 的粉丝,所以我自己使用自定义提供程序。 Here is an overview of custom idenity providers. This MySQL example 在实现自定义提供程序方面帮助了我很多(但是我仍然使用 SQL 服务器,但使用我们自己的内部 DAL)。