目前我已经使用身份框架创建了一个WebAPI项目,并且我在使用API进行身份验证时已经设置了令牌。
所以现在我正在研究创建一个独立的MVC应用程序,它允许用户调用WebAPI来获取最终数据。
目标是分离功能,以便其他应用程序也可以通过Web调用开始与后端数据交互。
现在的困惑是如何设置我的MVC项目,以便我可以使用从WebAPI收到的令牌在控制器上使用Authorize属性。我想我需要在Startup.Auth.cs中的ConfigureAuth方法中启用承载令牌。但这足够了吗?或者我是否还需要启用cookie身份验证?
答案 0 :(得分:1)
MVC和Web Api在身份验证方面有着根本的不同。使用Web Api,必须在请求的标头中设置承载令牌,但这不是问题,因为所有API请求都是由客户端以编程方式完成的,即设置客户端以验证请求时涉及人为干预正常。
MVC是一种不同的野兽,因为通常通过网络浏览器访问动作,网络浏览器不会自动将承载令牌附加到请求标头。 将做的是将服务器设置的cookie传递回服务器。这就是为什么cookie auth最常用于MVC Web应用程序的原因。
您应该做的是为MVC站点启用cookie auth,然后设置您的登录操作以通过Web Api进行身份验证。当您从Web Api返回有效的身份验证时,您可以通过Identity API手动登录用户:
await SignInManager.SignInAsync(user);