C# WebApi MVC 6,有没有重用MVC授权的方法?

C# WebApi MVC 6,有没有重用MVC授权的方法?,c#,asp.net-web-api,asp.net-core-mvc,C#,Asp.net Web Api,Asp.net Core Mvc,我有一个用ASP.NET MVC编写的网站。它使用ASP.NET标识授权用户执行特定的控制器操作。它对用户使用不同的声明(比如角色)。 现在我需要编写一个移动应用程序,该应用程序应该与我的网站做的相同,因此为了避免重复代码,我决定将所有数据访问层移动到分离的Web Api(MVC 6)项目中,以便在应用程序之间重用逻辑。问题是——有没有一种方法可以“重用”我在MVC项目中拥有的授权,比如生成一些令牌并将其传递给Web Api或其他什么?从头开始重写会花费太多时间,我没有太多时间。任何答案/提示/

我有一个用ASP.NET MVC编写的网站。它使用ASP.NET标识授权用户执行特定的控制器操作。它对用户使用不同的声明(比如角色)。
现在我需要编写一个移动应用程序,该应用程序应该与我的网站做的相同,因此为了避免重复代码,我决定将所有数据访问层移动到分离的Web Api(MVC 6)项目中,以便在应用程序之间重用逻辑。问题是——有没有一种方法可以“重用”我在MVC项目中拥有的授权,比如生成一些令牌并将其传递给Web Api或其他什么?从头开始重写会花费太多时间,我没有太多时间。任何答案/提示/文章都将不胜感激。

是的,但API通常不使用cookie,因此您可以配置您的API可以使用哪些cookie。OWIN中间件将以MVC中处理cookie的相同方式对令牌进行身份验证并填充用户主体


之后,您将能够以与MVC控制器相同的方式处理授权。

您是否在MVC中使用表单身份验证?您如何构建移动应用程序?网络和手机的浏览量是一样的还是怎样的?我如何构建我的手机应用程序有关系吗?它将通过HTTP调用我的API来获取数据。视图是分开的。Web API仅处理逻辑层。是的,webapi仅用于获取数据,但您如何从应用程序验证用户?它必须在webapi中完成。这就是我问的原因。我们在应用程序中使用oauth承载令牌在webapi中进行身份验证。然后,将对从webapi获取数据的任何请求进行身份验证。API没有Cookie是什么意思?API可以在浏览器之外使用,因此不适合依靠Cookie来提供身份验证方法。承载令牌的用途与cookie相同,并由客户端发送到请求标头中的API。是的,但这意味着这取决于您如何使用它,而不是WebApi没有使用Cookies您可能希望构建API以支持尽可能多的客户端集成,因此不会强制客户端在web浏览器中操作。我已经更新了我的答案,以反映this@JohnMc谢谢,我将尝试使用无记名代币,并让您知道结果:)