如何添加" ApiController"在Asp Net Core RC1 MVC中使用令牌认证

时间:2016-04-14 19:53:29

标签: c# asp.net-web-api asp.net-core asp.net-core-mvc asp.net-authentication

我知道这个问题可能会收到一些支持,但我在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?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

Limiting identity by scheme此链接可能是您的问题的答案。

  

在某些情况下,例如单页应用程序,它是可能的   最终得到多种身份验证方法,cookie身份验证   登录和承载javascript请求的身份验证。

我认为,你可以使用以下代码进行mvc和javascript调用(当然,你必须启用cookie和bearer中间件):

[Authorize(AuthenticationSchemes = "Cookie,Bearer")]
public class YourController : Controller