我开发了一个带有 cookie 身份验证的 ASP.Net 网站。
在了解 CSRF 攻击后,我决定更改我的网站以使用将保存在客户端的 token 身份验证。
所以我所做的是:
- 使用的登录名
- 用户收到 token 并将其保存在
sessionStorage
- 用户在每个
API
请求的 header 中发送 token 。
效果很好。
现在对我来说缺少的一件事是页面加载,这意味着如果用户在登录之前尝试访问页面,它应该将他重定向到登录页面。这显然是我想在页面加载之前做的事情,例如在我在 Site.Master
中加入这段代码之前:
if (!AuthCookieValidator.IsValid(HttpContext.Current))
{
s_Logger.Info("the user is not authenticated, logging out!");
Response.Redirect("/Login");
}
但现在我无法实现此逻辑,除非我同时保留基于 session 的 token 和客户端 token 。
这里的解决方案是什么?
最佳答案
所以我的解决方案是这样的:
- 用户登录
- 用户收到一个token并将其保存在sessionStorage中
- 用户在每个 API 请求的 header 中发送 token 。
- 如果用户尝试直接访问 url,则在 React 代码开始呈现页面之前,它将发送带有 token 的身份验证检查请求并进行相应呈现。
欢迎对我的方法提出任何意见
关于c# - ASP.NET 网站的 token 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51481846/