如何在 ASP.NET MVC 和 ASP.NET WEB API 应用程序之间共享身份验证?

use*_*102 5 authentication asp.net-mvc asp.net-web-api angularjs asp.net-mvc-5

我正在构建 AngularJS MVC 应用程序,我需要一些身份验证方面的指导。我正在考虑使用 MVC 身份验证管道构建身份验证。AngularJS 代码将驻留在 MVC 应用程序中,根 SPA 视图将是 Razor cshtml。这是我的场景 -

  • 登录页面将调用身份验证 API,该 API 将返回令牌
  • AngularJS 具有获取承载并传递给每个 API 请求的逻辑
  • 将有多个 ASP.NET WebAPI 项目作为子域托管。
  • 我还需要调用复杂的动态剃刀模板,这需要对将返回剃刀视图的 MVC 控制器进行身份验证。由于 MVC 遵循基于 cookie 的身份验证,因此令牌会给出 401 状态代码。如果身份验证在 MVC 和 WEB API 应用程序之间共享,这将如何工作。

Mar*_*arn 1

我认为您需要从 API 项目而不是 MVC 获取令牌,以便能够安全地调用 API。

如果您想在 API 和 MVC 项目之间共享身份,请让它们使用相同的数据库。

从 API 获取令牌时,您可以从 MVC 应用程序获取当前用户的身份详细信息。至少,我过去就是这么做的。

我在这里写了一些博客:http://blogs.msdn.com/b/martinearn/archive/2015/03/25/securing-and-working-securely-with-web-api.aspx但这不包括使用 MVC 登录中的凭据并将其传递给 API 以获取令牌的步骤。

希望有帮助。