6

我正在玩 ASP vnext 和 AngularJS。我已经设置了一个 Web API,正在使用一些控制器并正在使用 Angular 来做一些网络魔术。

我已按照本指南的大部分内容来启动和运行我的项目:http: //stephenwalther.com/archive/2015/01/29/asp-net-5-and-angularjs-part-6-security

...效果很好。我已经设置了我的数据库等,并且我的工作正常。我也设置了身份框架,但我还没有使用它。

我想将一些数据发布到 WebAPI。这也可以正常工作,但现在我想在使用防伪令牌时这样做。我用谷歌搜索了很多,我想这是最有意义的: novablog

但是:这使用 System.Web.Helpers 创建令牌并验证它们。它们在 vnext 中不再可用。我现在不知道用什么来创建和验证令牌。

有任何想法吗?

4

2 回答 2

5

以下是 ASP.NET 5 的 MusicStore 示例中的示例:

https://github.com/aspnet/MusicStore/blob/master/src/MusicStore/Controllers/ShoppingCartController.cs#L62

来自上述链接的片段(请注意,[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));
    ......
于 2015-03-30T20:05:53.763 回答
0

查看 MVC Github 存储库,ValidateAntiForgeryTokenAttribute存在。

还有asp-anti-forgery标签助手

于 2015-03-30T20:06:03.800 回答