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

C# 对WEB API OData控制器重新使用现有的ASP.NET-MVC 5 Identity 2授权,以便轻松登录其他应用程序?,c#,asp.net-mvc,odata,asp.net-web-api2,asp.net-identity-2,C#,Asp.net Mvc,Odata,Asp.net Web Api2,Asp.net Identity 2,我有完整的ASP.NET-MVC5应用程序,我通过WEB API 2 OData控制器对其进行了扩展。 例如,我有: 公共类PersonController:ODataController 以及需要授权的MVC控制器 [授权] 公共类人员控制器:控制器 这两个控件都使用ApplicationDbContext,其中mydbset是 我不想通过WebAPI控制器向世界上的每个人提供关于人的数据。在我的MVC应用程序中,我已经有了用户、主持人和管理员角色 当有人试图从PersonWebAPI

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

  • 公共类PersonController:ODataController
以及需要授权的MVC控制器

  • [授权]
    公共类人员控制器:控制器
这两个控件都使用
ApplicationDbContext
,其中my
dbset

我不想通过WebAPI控制器向世界上的每个人提供关于人的数据。在我的MVC应用程序中,我已经有了
用户
主持人
管理员
角色

当有人试图从
Person
WebAPI控制器获取数据时,我是否可以使用现有的授权模块(Identity 2.x)要求登录

例如:

http://localhost:17697/odata/Person?$expand=ReceivedCalls
直接问题

如果我这样做:

   [Authorize]
    public class PersonController : ODataController {
然后当我转到链接时:

http://localhost:17697/odata/Person

我被重定向到登录页面。但是这个登录页面是为人类设计的。如何使客户端应用程序易于登录。

您可以使用相同的身份设置来保护api。只需在api控制器上进行授权即可。