Маленькая точка - поместите атрибут в класс.Это приведет к тому, что на странице появится исключение безопасности, как только вы перейдете к нему без соответствующих прав.Чтобы пользователи не могли просматривать эту страницу, проверьте их учетные данные перед отображением URL-адреса.Атрибут класса является надежной гарантией того, что ни один обычный пользователь не будет выполнять столько строк кода в этом классе.
Да, это хорошая методика по этим причинам:
Атрибут работает, когда задан принцип потока и объект HttpContext User, с подходящими IPrincipal и IIdentity.(Все это может произойти в событии Request Authentication в глобальном asax). Эти интерфейсы определены Microsoft, хорошо документированы и доступны в любом контексте, в любом приложении, работающем в операционной системе MS.Таким образом, любой наполовину компетентный разработчик, которого вы схватите с улицы, может быть знаком с этим до того, как он начнет читать ваш код.
Кроме того, поскольку Thread IPrincipal и IIdentity используются Microsoft (это могла быть любая крупная компания сбольшая база пользователей), это проверенный в бою код.Вы все еще можете сделать что-то глупое, но существующие шаблоны помогут вам попасть в пропасть успеха.
С другой стороны, если вы помещаете пользовательский объект в Session, волшебное печенье или другоеТаким образом, разработчик программного обеспечения должен будет узнать, как он работает с нуля, а затем проверить его на предмет наличия уязвимостей, которые можно использовать.