Как передать AntiForgeryToken из метода веб-контроллера в контроллер веб-API - PullRequest
0 голосов
/ 25 января 2020

Веб-приложение, которое у меня есть, выполняет проверку анти-подделки с использованием. NET core AutoValidateAntiforgeryToken и передает токен из ajax в веб-контроллер.

У меня есть вызов Web API из метода веб-контроллера. В настоящее время мой вызов метода веб-API завершается с ошибкой при отладке метода веб-контроллера, когда я добавляю атрибут «ValidateAntiForgeryToken» в метод веб-API.

Код веб-метода

        [Authorize()]
        public IActionResult Index()
        {
            UserLoginTraceHelper.LoginTrace("Insert", ((CustomPrincipal)User).Butterfly_User.UserID, ((CustomPrincipal)User).Butterfly_User.UserContact.TimeZone);
            return Redirect("User/Index");
        }

UserLoginTraceHelper is метод API, вызываемый из действия индекса веб-контроллера

метод веб-API

        /// <summary>
        /// Creating a User login Trace
        /// </summary>
        /// <param name="userLoginTrace"></param>
        /// <returns>login trace details</returns>
        [HttpPost]
        [Route ("CreateUserLoginTrace")]
        //[Authorize]
        [AutoValidateAntiforgeryToken]
        public IActionResult CreateUserLoginTrace( UserLoginTrace userLoginTrace )
        {
            var userDetails = userServices.CreateUserLoginTrace (userLoginTrace);
            if ( userDetails != null )
            {
                responseMessage = locService.GetLocalizedHtmlString ("AcMgmt_TraceCreated");
                return Ok (new APIResponse (Convert.ToInt32 (HttpStatusCode.OK), responseMessage, MethodBase.GetCurrentMethod (), userDetails));
                //return Ok(userDetails);
            }
            else
            {
                responseMessage = locService.GetLocalizedHtmlString ("AcMgmt_UserLoginTraceFailed");
                return  BadRequest(new APIResponse (Convert.ToInt32(HttpStatusCode.ExpectationFailed), responseMessage, MethodBase.GetCurrentMethod (), userDetails));
            }
        }

Как я могу также применить атрибут AntiForgery к методу веб-API? В дальнейшем эти методы будут представлены другим не веб-приложениям. Мне нужно протестировать метод Web API от Postman с примененным атрибутом токена AntiForgery.

Пожалуйста, предложите пример кода для решения этой проблемы. Заранее благодарю за поддержку.

...