ASP.NET 5 中的手动防伪令牌创建和验证
Manual Anti-Forgery Token Creation and Validation in ASP.NET 5
我正在玩 ASP vnext 和 AngularJS。我已经设置了一个 Web API,正在使用一些控制器并正在使用 angular 来做一些 web-magic。
我已按照本指南的大部分内容来启动我的项目,并且 运行:
http://stephenwalther.com/archive/2015/01/29/asp-net-5-and-angularjs-part-6-security
... 效果很好。我已经设置了我的数据库等,并且一切正常。我也设置了身份框架,但我还没有使用它。
我想post 将一些数据上传到网络API。这也很好用,但现在我想在使用防伪令牌的同时做到这一点。我在谷歌上搜索了很多,我想这是最有意义的:
novablog
但是:
这使用 System.Web.Helpers 创建令牌并验证它们。它们在 vnext 中不再可用。我现在不知道用什么来创建和验证令牌。
有什么想法吗?
以下是来自 ASP.NET 5 的 MusicStore 示例的示例:
上面的片段 link(请注意,如果您不喜欢上面 link 的做法,可以使用 [FromServices] AntiForgery antiforgery
作为操作的参数):
[HttpPost]
public async Task<IActionResult> RemoveFromCart(int id)
{
var formParameters = await Context.Request.ReadFormAsync();
var requestVerification = formParameters["RequestVerificationToken"];
string cookieToken = null;
string formToken = null;
if (!string.IsNullOrWhiteSpace(requestVerification))
{
var tokens = requestVerification.Split(':');
if (tokens != null && tokens.Length == 2)
{
cookieToken = tokens[0];
formToken = tokens[1];
}
}
var antiForgery = Context.RequestServices.GetService<AntiForgery>();
antiForgery.Validate(Context, new AntiForgeryTokenSet(formToken, cookieToken));
......
查看 MVC Github 存储库,ValidateAntiForgeryTokenAttribute
存在。
还有 asp-anti-forgery
taghelper
我正在玩 ASP vnext 和 AngularJS。我已经设置了一个 Web API,正在使用一些控制器并正在使用 angular 来做一些 web-magic。
我已按照本指南的大部分内容来启动我的项目,并且 运行: http://stephenwalther.com/archive/2015/01/29/asp-net-5-and-angularjs-part-6-security
... 效果很好。我已经设置了我的数据库等,并且一切正常。我也设置了身份框架,但我还没有使用它。
我想post 将一些数据上传到网络API。这也很好用,但现在我想在使用防伪令牌的同时做到这一点。我在谷歌上搜索了很多,我想这是最有意义的: novablog
但是: 这使用 System.Web.Helpers 创建令牌并验证它们。它们在 vnext 中不再可用。我现在不知道用什么来创建和验证令牌。
有什么想法吗?
以下是来自 ASP.NET 5 的 MusicStore 示例的示例:
上面的片段 link(请注意,如果您不喜欢上面 link 的做法,可以使用 [FromServices] AntiForgery antiforgery
作为操作的参数):
[HttpPost]
public async Task<IActionResult> RemoveFromCart(int id)
{
var formParameters = await Context.Request.ReadFormAsync();
var requestVerification = formParameters["RequestVerificationToken"];
string cookieToken = null;
string formToken = null;
if (!string.IsNullOrWhiteSpace(requestVerification))
{
var tokens = requestVerification.Split(':');
if (tokens != null && tokens.Length == 2)
{
cookieToken = tokens[0];
formToken = tokens[1];
}
}
var antiForgery = Context.RequestServices.GetService<AntiForgery>();
antiForgery.Validate(Context, new AntiForgeryTokenSet(formToken, cookieToken));
......
查看 MVC Github 存储库,ValidateAntiForgeryTokenAttribute
存在。
还有 asp-anti-forgery
taghelper