我正在开发一个大型应用程序,其中包括后端的ASP.NET MVC和AngularJS Web Api2.以前我在我的应用程序中使用了MVC表单授权.有很多示例如何使用AngularJS Web Api使用基于令牌的授权,但找不到既适合这两种情况的完整解决方案.
解决方法
>在您的WebAPI2应用程序
here is a good tutorial on implementing ASP.Identity 2中实现ASP.Net Identity 2.如果您将WebAPI和MVC5应用程序保留在不同的项目中,则会更好.
>决定您是否直接从AngularJS应用程序或从MVC应用程序连接到API
>如果直接从AngularJS应用程序调用API方法,请使用 this directive for OAuth2.将access_token存储在本地存储或cookie中.
>如果从您的MVC应用程序中调用API方法,请在客户端(使用本地存储或cookie)存储access_token,并将其用于对API的每次调用. here is a tutorial showing how to use AngularJS with ASP.Net MVC5
>确保您在生产中使用安全连接(https).
>决定您是否直接从AngularJS应用程序或从MVC应用程序连接到API
>如果直接从AngularJS应用程序调用API方法,请使用 this directive for OAuth2.将access_token存储在本地存储或cookie中.
>如果从您的MVC应用程序中调用API方法,请在客户端(使用本地存储或cookie)存储access_token,并将其用于对API的每次调用. here is a tutorial showing how to use AngularJS with ASP.Net MVC5
>确保您在生产中使用安全连接(https).
更新
您可以使用默认的ASP.Net提供程序为WebAPI.但默认的提供者最好使用EnityFramework.
我不是EF的粉丝,所以我自己使用了自定义提供商. Here is an overview的自定义识别提供商. This MySQL example帮助我很多实现自定义提供程序(但是我仍然使用sql Server,但是使用我们自己的内部DAL).