(Ajax)使用WebAPI对MVC网站用户进行身份验证

时间:2016-04-01 18:15:30

标签: ajax asp.net-mvc asp.net-web-api2

尝试搜索此结果可以获得许多用于保护WebAPI以及如何保护MVC应用程序的结果,但我找不到解决方案。

我想要实现的目标: 我有一个带模态登录表单的MVC网站, 当用户将其凭据输入到表单时,会使用凭据将Ajax请求发送到WebAPI。 WebAPI应该返回(我猜一张票,因为这是我发现的)。 然后将票证保存到浏览器的sessionStorage中(无cookie), 对网站的每个页面请求都将检查令牌,并启用/禁用需要保护的部分。

我发现的所有示例都显示了仅MVC身份验证, 或WebAPI身份验证,但我找不到上述内容。

1 个答案:

答案 0 :(得分:0)

sessionStorage仅供客户端使用。您可以使用Javascript从存储中操作或检索值,但是您无法直接从服务器读取数据。由于MVC通常呈现HTML视图服务器端,因此您无法在每个请求上发送存储在sessionStorage中的令牌。

您所描述的情况是一种混合解决方案,无需使用Cookie即可实现。

一个简单的解决方案是在登录阶段由Web API端点发布的cookie中设置登录数据(特别是如果您将使用基于令牌的方法的令牌)。