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

标签 asp.net-mvc angularjs authentication asp.net-web-api asp.net-mvc-5

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

  • 登录页面将调用 Authenticate API,该 API 将返回 token
  • AngularJS 具有获取承载并传递给每个 API 请求的逻辑
  • 将有多个 ASP.NET WebAPI 项目作为子域托管。
  • 我还需要调用复杂的动态 Razor 模板,这需要对将返回 Razor View 的 MVC Controller 进行身份验证。由于 MVC 遵循基于 cookie 的身份验证,因此 token 会提供 401 状态代码。在 MVC 和 WEB API 应用程序之间共享身份验证时,这将如何工作。
  • 最佳答案

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

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

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

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

    希望有帮助。

    关于asp.net-mvc - 如何在 ASP.NET MVC 和 ASP.NET WEB API 应用程序之间共享身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29541636/

    相关文章:

    node.js - 如何在nest js中实现guard的集成测试?

    asp.net-mvc - 垂直的 asp.net MVC 组织和 VirtualPathProviders

    c# - 在 MVC 中将 Viewmodel 和日期选择器与 Dotnet Highchart 结合使用

    数组上的 ASP.NET MVC Range 属性

    asp.net-mvc - 从 Web api + AngularJS 中的 JSON 中删除 ↵

    AngularJS:即使使用 $apply,$scope.array.push() 也不会更新 View

    angularjs - Angular 在非 Angular 路由上为 404 处理添加额外的逻辑

    javascript - 未调用 Angular 登录/注销功能

    java - 单点登录无法在 Jboss 上运行

    authentication - 如何使用 JWT token 而不是用户名、密码对 Openfire XMPP 进行身份验证