Этот переключатель был создан задолго до того, как я присоединился к команде ASP.NET, но мне это было любопытно, и я потратил некоторое время на проработку старой базы данных ошибок. Насколько я могу судить, есть две основные причины, по которым она была введена.
Коммутатор был замечен как потенциально предлагающий преимущество в производительности. В раннем предварительном просмотре .NET Framework (1.0 alpha, действительно) вычисление MAC было действительно медленным. Это было исправлено до 1.0, достигнутого RTM, так что разница в производительности была незначительной. Тем не менее, ущерб был нанесен: семена были заложены в умах ранних разработчиков, что могут быть случаи, когда для эффективности MAC необходимо отключить. Это также привело к появлению нескольких статей MSDN, в которых говорилось о том, что отключение MAC повышает производительность, и я до сих пор (в 2014 году) обнаружение и удаление этих статей.
В среде веб-фермы необходимо синхронизировать <machineKey>. К сожалению, мы не можем легко генерировать машинные ключи. Таким образом, в первые дни тестирования ASP.NET существовал коммутатор, позволяющий тестерам делать простую вещь для развертывания фермы, а не правильную для развертывания фермы. Сегодня мы все еще боремся: большинство разработчиков используют онлайн-генераторы ключей для ключей, которые небезопасны. Я работаю с командой Visual Studio, чтобы упростить создание и защиту машинных ключей.
В то время считалось, что наихудшая возможная вещь, которая может произойти, если MAC отключена, заключается в том, что вы могли бы XSS-сайт. Это оказалось неправильной оценкой.
И наконец, его удаление уже не просто возможно. Он уже удален в наших локальных исходных репозиториях. Следующее обновление .NET Framework, которое мы взорвали в мире , будет иметь, но у меня нет временных рамок того, когда это может быть. Мы просто сидим на триггере, ожидая доброго. :)
Это, вероятно, вопрос, в котором вам нужен кто-то в Microsoft. –
Пока я согласен с @LasseV.Карлсен, что только ребята из Microsoft могут ответить на него правильно, я должен напомнить вам, что разработчики даже в Microsoft могут ошибаться. Я считаю, что оригинальные дизайнеры считали, что это значение «ложь» не имеет большого значения. Конечно, теперь мы знаем, что это большая проблема. –