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

时间:2015-04-09 14:41:29

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

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

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

1 个答案:

答案 0 :(得分:1)

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

如果要跨API和MVC项目共享身份,请让他们使用相同的数据库。

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

我在这里写了一些内容:http://blogs.msdn.com/b/martinkearn/archive/2015/03/25/securing-and-working-securely-with-web-api.aspx但是这并没有涉及使用MVC登录中的信用卡并将其传递给API来获取令牌的步骤。

希望有所帮助。