Рассмотрим приложение ASP.NET MVC, использующее параметр Salt
в директиве [ValidateAntiForgeryToken]
.
Сценарий таков, что приложением будут пользоваться многие клиенты. Не очень желательно, чтобы Salt
был известен во время компиляции.
Текущая стратегия заключается в том, чтобы найти значение Salt в web.config.
[ValidateAntiForgeryToken(Salt = Config.AppSalt)]
//Config.AppSalt is a static property that reads the web.config.
Это приводит к исключению во время компиляции, предполагающему, что Salt
должен быть константой во время компиляции.
Аргументом атрибута должно быть константное выражение, выражение typeof или выражение создания массива типа параметра атрибута
Как я могу изменить приложение, чтобы разрешить загрузку Salt
во время выполнения, чтобы приложение не было повторно посолено и перекомпилировано для каждого клиента?
Учтите, что Salt
не будет часто меняться, если вообще изменится, тем самым устраняя возможность аннулирования формы