如何在Asp Net Core RC1 MVC中添加带有令牌认证的"ApiController"

cez*_*ann 5 c# asp.net-authentication asp.net-web-api asp.net-core-mvc asp.net-core

我知道这个问题可能会收到一些downvotes,但是我在Google上搜索了三天,没有真正可用的结果.

我在Visual Studio中创建了一个默认的ASP.NET Core 1.0 RC1项目,具有个人用户帐户身份验证/授权.这一切都很简单,因为该项目是脚手架使用Microsoft.AspNet.Authentication.Cookies,VS 2015完成所有繁重的工作.

但是,我们希望从同一个项目(使用相同的数据库,用户,声明等)公开API,这些API将从移动设备甚至一些简单的SPA中使用.这样,我们需要为API使用类似JWT的东西(有很多关于如何使用WebAPI执行此操作的教程).

我们希望使用MVC(而不是SPA)方式来执行主项目,以利用视图/控制器脚手架以及Visual Studio可以提供的所有内容.

有许多仅限MVC或仅支持WebAPI的教程,但您能指出我如何将它们混合在一起?

有没有办法只在整个系统范围内使用JWT和MVC和WebAPI?

先感谢您.

ade*_*lin 1

通过方案限制身份此链接可能是您问题的答案。

在某些场景中,例如单页应用程序,最终可能会采用多种身份验证方法、用于登录的 cookie 身份验证和用于 javascript 请求的承载身份验证。

我认为,您可以使用下面的代码进行 mvc 和 javascript 调用(当然,您必须启用 cookie 和不记名中间件):

[Authorize(AuthenticationSchemes = "Cookie,Bearer")]
public class YourController : Controller
Run Code Online (Sandbox Code Playgroud)