我知道这个问题可能会收到一些支持,但我在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?
提前谢谢。
答案 0 :(得分:1)
Limiting identity by scheme此链接可能是您的问题的答案。
在某些情况下,例如单页应用程序,它是可能的 最终得到多种身份验证方法,cookie身份验证 登录和承载javascript请求的身份验证。
我认为,你可以使用以下代码进行mvc和javascript调用(当然,你必须启用cookie和bearer中间件):
[Authorize(AuthenticationSchemes = "Cookie,Bearer")]
public class YourController : Controller