Маркер подтверждения запроса MVC Antiforgery, отображаемый в строке запроса - PullRequest
1 голос
/ 12 декабря 2011

У меня есть представление MVC 3 со следующим кодом: -

@using (Html.BeginForm(MVC.Order.SearchResults(), FormMethod.Get))
{
    @Html.AntiForgeryToken()

    @Html.Button("btnSearch", "Search", HtmlButtonType.Submit, null, new { @class = "button primary icon search", alt = "Search the orders (up to 50 characters)" }
}

Когда я отправляю форму, я вижу __RequestVerificationToken = и содержимое токена проверки в строке запроса.

Любые идеи, почему это может иметь место и как это отсортировать?

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

Токен защиты от подделки работает только с запросами POST. Если вы хотите использовать их, вам нужно заменить глагол формы на POST вместо GET:

@using (Html.BeginForm(MVC.Order.SearchResults(), FormMethod.Post))
{
    @Html.AntiForgeryToken()

    @Html.Button("btnSearch", "Search", HtmlButtonType.Submit, null, new { @class = "button primary icon search", alt = "Search the orders (up to 50 characters)" }
}
0 голосов
/ 13 декабря 2011

Существует обходной путь, как вы можете передать значение антифорегии с помощью метода GET или даже в заголовках.Подробнее здесь .

...