DotNetCore在标题

时间:2018-02-12 06:03:20

标签: json asp.net-core http-headers

我正在尝试将我的HTTP请求发送为content-type:application/json。因此,因为我的数据被称为JSON,我还将AntiForgeryToken作为JSON发送:

{
    "SearchValue": "ShiroiTora",
    "Filter": [
        {
            "FilterName": "DepartmentIdList",
            "FilterValue": [
                "1",
                "2",
                "3"
            ]
        }   
    ],
    "TotalCount": "1000",
    "PageNumber": "1",
    "OrderColumn": "Name"
},
//{
//  "__RequestVerificationToken": "*some_token_here"
//}

我问here我应该怎样做我的代码来理解JSON-ised AntiForgeryToken。我不知道是否可能,但as described in this site看起来可以在标头中发送AntiForgeryToken值。但代码是用.net mvc编写的,我找不到用“.net core 2.0”编写的代码。另外,我对“属性”知之甚少,所以如果有人能帮助我,我将不胜感激。

我的代码(我不确定是否应该复制/粘贴用“该网站”编写的代码。所以,我只是复制/粘贴我的代码):

[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult PhoneBook([FromBody]PersonnelFilterReq filterList)
{
    return Ok("FINALLY WORKED!!!!");
}

模型(在POST方法中使用):

using System.Collections.Generic;

namespace GebzeShared.Modules.HR.Personnel.RequestModels
{
    /// <summary>
    /// Personel sayfaları için genel request metodu
    /// </summary>
    public class PersonnelFilterReq
    {
        /// <summary>
        /// Arama Değeri
        /// </summary>
        public string SearchValue { get; set; }

        /// <summary>
        /// Filtre Listesi
        /// </summary>
        public ICollection<FilterList> Filter { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int TotalCount { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int PageNumber { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public string OrderColumn { get; set; }
    }

    /// <summary>
    /// 
    /// </summary>
    public class FilterList
    {
        /// <summary>
        /// Filterinin Adı
        /// </summary>
        public string FilterName { get; set; }

        /// <summary>
        /// Filtrenin Değeri
        /// </summary>
        public ICollection<string> FilterValue { get; set; }
    }
}

1 个答案:

答案 0 :(得分:1)

使用ASP.NET MVC Core,不再需要在您引用的站点上使用自定义属性。它现在开箱即可在ajax请求的标头中设置令牌。 See example here