Header Ads Widget

El campo de formulario antifalsificación "__RequestVerificationToken" no está presente


Cuando estás desarrollando una aplicación web MVC puede producirse el siguiente error:

El campo de formulario antifalsificación "__RequestVerificationToken" no está presente

El campo antifalsificación al que se refiere el error nos permite evitar los peligros de que otra aplicación de terceros haga solicitudes a nuestro métodos cuando no debería.

El error sucede cuando se ha agregado el atributo [ValidateAntiForgeryToken] a la Action que se está llamando en el Controller.

1. Solución 1: Hay que agregar:

@Html.AntiForgeryToken()

No te olvides de agregar el arroba.

2. Solución 2: Validar manualmente el campo de formulario antifalsificación. En mi caso, la solución 1 no funcionaba. Hay que quitar el atributo [ValidateAntiForgeryToken], y evaluar el token de forma manual, es decir obtener el token desde el request de la solicitud, obtener el valor y validar.

Dejo como ejemplo la función que podemos agregar en un Controller genérico que los demás Controller pueden heredar y esta función utilizarla en los métodos que necesiten implementar la validación.

        public void ValidateRequestHeader(HttpRequestBase request)
        {
            string cookieToken = "";
            string formToken = "";

            string tokenHeader = HttpContext.Request.Headers.Get("RequestVerificationToken");

            string[] tokens = tokenHeader.Split(':');

            if (tokens.Length == 2)
            {
                cookieToken = tokens[0].Trim();
                formToken = tokens[1].Trim();
            }

            AntiForgery.Validate(cookieToken, formToken);
        }

Publicar un comentario

2 Comentarios

  1. Top Online Casino - Kadangpintar
    Best Online Casino | Best 카지노사이트 Casino | 100% Welcome Bonus | Online casino | Best Casino | Top mobile casino for 온카지노 Indian players in India, USA, หาเงินออนไลน์ NZ & NZ.

    ResponderBorrar
  2. Offshore gambling licenses are by far the most well-liked, end result of} a combination of cost-efficiency, streamlined setups, tax-optimization opportunities, and elevated flexibility. A comparable however very totally different question to the above, the reply is just about the same. These are new to OLBG casino sites in order of probably the most 1xbet just lately added.

    ResponderBorrar