Генерация AntiForgeryToken в WebForms

В Linux можно сделать это

command | tee file1 >> file2

18
задан Naz 24 August 2009 в 10:09
поделиться

3 ответа

Implementing it yourself is not too difficult.

  • Generate a GUID
  • Put it in a hidden field
  • Also put it in Session or Cookie (in the latter case, with some anti-tamper protection)
  • At the start of processing the form compare the field and stored token.

(If you look at the implementation of MVC, there is very little more to it. A few helper methods is all you need.)

8
ответ дан 30 November 2019 в 08:27
поделиться

WebForms имеет довольно похожий аналог в Page.ViewStateUserKey. Если установить это значение для каждого пользователя (большинство выбирает HttpSessionState.SessionId), WebForms будет проверять ViewState1 как часть проверки MAC.

 overrides OnInit(EventArgs e) {
     base.OnInit(e);
     ViewStateUserKey = Session.SessionId;
 }

1 Есть сценарии, в которых ViewStateUserKey не поможет. В основном, они сводятся к опасным действиям с GET-запросами (или в Page_Load без проверки IsPostback), или отключению ViewStateMAC.

3
ответ дан 30 November 2019 в 08:27
поделиться

Вы можете использовать отражение, чтобы получить методы MVC, используемые для установки cookie, и соответствующие входные данные формы, используемые для проверки MVC. Таким образом, у вас может быть действие MVC с атрибутами [AcceptVerbs (HttpVerbs.Post), ValidateAntiForgeryToken] , которые вы можете отправлять со страницы, созданной WebForms.

См. Ответ: Использование MVC HtmlHelper из WebForm

1
ответ дан 30 November 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: