重用WEB API OData控制器的现有ASP.NET-MVC 5 Identity 2授权,以便轻松登录其他应用程序?

我有完整的ASP.NET-MVC5应用程序,我通过WEB API 2 OData控制器进行了扩展。 比如我有:

  • public class PersonController : ODataController

和需要授权的MVC控制器

  • [Authorize] public class PersonController : Controller

两个控制器都在我的DbSets中使用ApplicationDbContext

我不想通过WEB API控制器向世界上的每个人提供有关人员的数据。 我已经在我的MVC应用程序中拥有UserModeratorAdmin角色。

我可以以某种方式使用已经存在的授权模块(Identity 2.x),当有人试图从Person WEB API Controller获取数据时要求登录。

例如:

 http://localhost:17697/odata/Person?$expand=ReceivedCalls 

直接问题

如果我做:

  [Authorize] public class PersonController : ODataController { 

然后当我去链接时:

 http://localhost:17697/odata/Person 

我被重定向到登录页面。 但是这个登录页面适用于人类。 如何使客户端应用程序轻松登录。