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

时间:2018-07-23 14:58:34

标签: c# asp.net webforms

我开发了一个具有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");
}

但是,除非我同时保留了基于会话的令牌和客户端令牌,否则我将无法实现此逻辑。

这里有什么解决方案?

1 个答案:

答案 0 :(得分:0)

所以我的解决方案是这样的:

  1. 用户登录
  2. 用户收到令牌并将其保存在sessionStorage
  3. 用户在每个API请求的标头中发送令牌。
  4. 如果用户尝试直接访问url,则在react代码开始呈现页面之前,它将发送带有令牌的身份验证检查请求并进行相应呈现。

对于我的方法有何评论