如何将用户从MVC应用程序持久化和验证到Web API

时间:2016-06-16 17:03:37

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

因此,我们目前正在寻找一个利用Web API进行所有身份验证和与数据库通信的站点。我们目前不确定的是如何通过Web API进行身份验证来保持用户进入我们的MVC应用程序。

在MVC方面,这会发生什么?我们应该如何使用Web API进行身份验证?

编辑:我想知道的另一件事是,我们是否可以调用API以在身份验证用户获得身份验证后获取身份用户并在MVC端实例化身份用户并将其存储在会话变量中以保留在我们的申请上。这会是可行的,也不知道它会是什么样子?

1 个答案:

答案 0 :(得分:3)

MVC利用会话进行身份验证。 Cookie会发送给用户,Web浏览器会在每次请求时发回该cookie,以便服务器恢复会话并将用户识别为已通过身份验证。

Web Api是基于REST的,无状态。没有会话,cookie等概念。每个Web Api请求必须在请求中进行身份验证,通常是通过传递带有承载令牌或类似标记的Authorization标头。

如果MVC应用程序使用Web Api进行身份验证,则Web Api应将身份验证令牌返回给MVC应用程序。然后,MVC应用程序应该通过设置该普通身份验证cookie来“登录”用户并保存令牌,以便它可以使用该身份验证未来的Web Api请求。换句话说,MVC应用程序仍然像往常一样处理授权。唯一的区别是Web Api的响应确定它是否认为用户名/密码组合是正确的,而不是直接进行数据库查询。