ASP.NET 网站的令牌身份验证

我开发了一个带有 cookie 身份验证的 ASP.Net 网站。

在阅读了有关 CSRF 攻击的信息后,我决定更改我的网站以使用将保存在客户端的令牌身份验证。

所以我所做的是:

  1. 使用过的登录名

  2. 用户收到一个令牌并将其保存在 sessionStorage

  3. 用户在每个API请求的标头中发送令牌。

这很好用。

现在我缺少的一件事是页面加载,这意味着如果用户在登录之前尝试访问页面,它应该将他重定向到登录页面。这显然是我想在页面加载之前做的事情,例如在我在以下代码中添加以下代码之前Site.Master

if (!AuthCookieValidator.IsValid(HttpContext.Current))

{

    s_Logger.Info("the user is not authenticated, logging out!");

    Response.Redirect("/Login");

}

但是现在我无法实现这个逻辑,除非我同时保留基于会话的令牌 + 客户端令牌。


这里的解决方案是什么?


慕运维8079593
浏览 187回答 1
1回答

慕沐林林

所以我的解决方案是这样的:用户登录用户收到一个令牌并将其保存在 sessionStorage 中用户在每个 API 请求的标头中发送令牌。如果用户尝试直接访问 url,则在 React 代码开始呈现页面之前,它将发送带有令牌的身份验证检查请求并相应地呈现。对我的方法的任何评论表示赞赏
打开App,查看更多内容
随时随地看视频慕课网APP