2014-11-24 4 views
1

Перед тем, как развернуть какой-то код, который работает для тестирования, есть ли проблемы с использованием AntiForgeryToken при развертывании в Azure WebRole. Поскольку он генерирует некоторые html и cookie, я беспокоюсь о следующем ...Использование страниц AntiForgeryToken и кеширования

Страницы кэшируются кэшем MVC. Будет ли cookie анти-поддельного токена повторно выдаваться при последующих запросах на страницу?

Эта страница работает в Azure Webrole на нескольких экземплярах. Есть ли проблема, если принимающий сервер не тот, который сгенерировал страницу?

Формы получены из куска html, сохраненного в базе данных. Поэтому мы предлагаем эффективно заменить строку, чтобы найти простой токен и обменять в токере AntiForgery. (код ниже) Это, похоже, работает, но беспокоит меня.

 var xtoken = "<!--AntiForgeryToken-->"; 
     if (content.Contains(xtoken)) 
     { 
      var token = HttpUtility.HtmlDecode(html.AntiForgeryToken().ToHtmlString()); 
      content = content.Replace(xtoken, token); 
     } 

     return html.Raw(content) 

Вызвать ли возникшие проблемы?

ответ

3

Вы не можете использовать кеш на страницах с токеном AntiForgeryToken() - see this.

Страница работает в Azure WebRole на нескольких серверах

Если вы имеете в виду WebRole работает на нескольких экземплярах, которые не должны быть проблемой, потому что по умолчанию Azure будет заботиться о MachineKey (see here)

Но у вас может возникнуть проблема сразу после развертывания (перераспределение), потому что Azure will override MachineKey

+0

Я обновил вопрос, чтобы указать несколько экземпляров. – Andiih