ASP.NET MVC 3 AntiForgeryToken и пользовательская конфигурация MachineKey - PullRequest
2 голосов
/ 20 мая 2011

У нас возникли некоторые проблемы с HTML-помощником ASP.NET MVC 3 AntiForgeryToken, когда в Web.Config был настроен пользовательский ключ MachineKey.Эту ошибку легко воспроизвести, если вы измените свой MachineKey на следующее (взято из руководства Microsoft HowTo по настройке ключа машины).

<machineKey  
    validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
           AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"           
    decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
    validation="SHA1"
    decryption="AES"/>

Исключение, выданное AntiForgeryToken, выглядит следующим образом:

[IndexOutOfRangeException: Index was outside the bounds of the array.]
   System.Web.Configuration.MachineKeySection.SetInnerOuterKeys(Byte[] validationKey, Byte[]& inner, Byte[]& outer) +11499173
   System.Web.Configuration.MachineKeySection.ConfigureEncryptionObject() +228
   System.Web.Configuration.MachineKeySection.EnsureConfig() +287
   System.Web.Configuration.MachineKeySection.HashData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length) +46
   System.Web.Security.MachineKey.Encode(Byte[] data, MachineKeyProtection protectionOption) +58
   System.Web.Helpers.AntiForgeryDataSerializer.<.ctor>b__2(Byte[] bytes) +13
   System.Web.Helpers.AntiForgeryDataSerializer.Serialize(AntiForgeryData token) +365
   System.Web.Helpers.AntiForgeryWorker.GetAntiForgeryTokenAndSetCookie(HttpContextBase httpContext, String salt, String domain, String path) +326
   System.Web.Helpers.AntiForgeryWorker.GetHtml(HttpContextBase httpContext, String salt, String domain, String path) +28
   System.Web.Helpers.AntiForgery.GetHtml(HttpContextBase httpContext, String salt, String domain, String path) +75
   System.Web.Mvc.HtmlHelper.AntiForgeryToken(String salt, String domain, String path) +48

Это ошибка в ASP.NET MVC 3 Html Helper для генерации AntiForgeryToken?Или я что-то упускаю при настройке машинных ключей?

1 Ответ

3 голосов
/ 20 мая 2011

Похоже, я облажался с ключами - используя http://aspnetresources.com/tools/machineKey Я смог создать действительный раздел конфигурации machineKey.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...