加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET 5中的手动防伪标记创建和验证

发布时间:2020-12-16 03:30:03 所属栏目:asp.Net 来源:网络整理
导读:我正在玩ASP vnext和AngularJS.我已经设置了一个Web API,我正在使用一些控制器,并使用角度来做一些网络魔术. 我已按照本指南的大部分内容启动并运行我的项目: http://stephenwalther.com/archive/2015/01/29/asp-net-5-and-angularjs-part-6-security ……
我正在玩ASP vnext和AngularJS.我已经设置了一个Web API,我正在使用一些控制器,并使用角度来做一些网络魔术.

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

……工作正常.我已经设置了我的数据库等等,我的工作正常.我也设置了身份框架,但我还没有使用它.

我想将一些数据发布到WebAPI.哪个也工作正常,但现在我想在使用防伪代币时这样做.我已经google了很多,我猜这最有意义:
novablog

然而:
这使用System.Web.Helpers来创建令牌并验证它们.它们在vnext中不再可用.我现在无法弄清楚用什么来创建和验证令牌.

有任何想法吗?

解决方法

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

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

来自上述链接的片段(请注意,如果您不喜欢上面的链接,可以使用[FromServices] 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));
    ......

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读