У меня есть немного необычное требование безопасности, и я ищу совет по наилучшей практике или, по крайней мере, не хрупкие подходы.
Сценарий: интранет-система. Данные о ряде связанных объектов должны рассматриваться как частные. Это известно как неопубликованная часть системы. Только определенные пользователи могут получить доступ к этим данным. На каком-то этапе пользователи делают выбор из этих данных, отмечают некоторые записи и публикуют их на «опубликованной» стороне. Данные, опубликованные на опубликованной стороне, удаляются с неопубликованной стороны. Основная часть пользователей систем может затем работать с записями на опубликованной стороне.
Я знаю, что это звучит как поле bool в родительской записи, помеченное как опубликованное или неопубликованное, но позвольте мне объяснить, как система, которую мы заменяем, решает проблему - это уровень безопасности, который мы должны эмулировать. Это база данных плоских файлов (Dataflex) с неопубликованными и опубликованными данными в отдельных таблицах, на отдельных серверных дисках, резервное копирование на отдельные ленты, в разных комнатах, с физическим доступом разных людей. Сетевые права гарантируют, что опубликованные пользователи не смогут получить неопубликованные данные. Программное обеспечение также управляет правами, но если что-то пойдет не так или программист совершит ошибку, они все равно не смогут получить доступ к неправильным данным. Системные администраторы, которые потенциально могут получить доступ к этим данным, имеют положительную проверку безопасности.
Итак, я ищу совет о том, как создать архитектуру с MVC, EF4, SQL, которая этого добивается. В одном крайнем случае я строю две системы с двумя базами данных sql с разными правами: возможно, с учетом различий, содержащихся в web.config, поэтому фактически это одна и та же кодовая база. На другом конце шкалы его флаг в таблице с методами контроллера, размеченными для запрета доступа. (Это бесполезно, потому что, если программист напутает, скажем, поисковый запрос, и он возвращает данные из неправильной категории, и это делает его незамеченным из здания, это может привести к человеческим жертвам, собакам и кошкам, живущим вместе ... масса истерия)
Извините за длинное описание. Лучшие практики или другие советы о том, как получить доступ к этому запросу.