ASP.NET Web API + ASP.NET MVC身份验证

par*_*ani 6 asp.net asp.net-mvc asp.net-membership asp.net-web-api asp.net-identity

我对身份验证/授权有疑问.这是我的应用程序设置.应用程序1:使用浏览器提供的ASP.NET MVC应用程序.应用程序2:使用混合移动应用程序提供相同的功能,该应用程序在客户端(app)上使用ionic + angularjs,在服务器端使用ASP.NET Web api.

现在,两个应用程序具有相同的用户群,并且都需要通用的身份验证/授权模块.

我已经通过互联网找到了很多很好的文章,它解释了每个应用程序的认证.我很清楚我需要在OWIN中间件中使用基于令牌的身份验证.

但我不太清楚如何为这两个应用程序实现通用身份验证模块.我计划单独托管ASP.NET MVC应用程序和ASP.NET web api(应用程序的后端部分).如何在两者之间共享通用的身份验证控制器?

如果我分别托管两个,我将为每个单独的AccountController(从MVC的"Controller"派生,并从WebAPI的"ApiController"派生).但不确定,如何合并此控制器以在我的解决方案中使用通用身份验证模块

我是否在正确的方向与托管在一起?或者我需要遵循的任何其他最佳做法?

谢谢

小智 2

制作一个具有 MVC + API 控制器的项目。

MVC 控制器将实现基于 cookie 的身份验证(它们从 cookie 获取身份验证票证)并将用于为您的 mvc 站点提供服务。

API 控制器将实现基于标头的身份验证(它们从标头获取身份验证票证)并将成为 Angular 应用程序的后端。

MVC 和 API 控制器都将访问一个获取票证的类,并实现特定于您的需求的身份验证/授权逻辑。

通过这种方式,您将能够将一个 Web 应用程序部署到一台为 MVC 站点和 Angular 应用程序提供服务的主机。