Комплексное решение безопасности для приложения ASP.NET MVC - PullRequest
1 голос
/ 13 декабря 2010

Если бы вы планировали и готовились к большому проекту ASP.NET MVC, как бы вы подошли к нему, чтобы спроектировать и создать комплексное, расширяемое и обслуживаемое решение безопасности, которое требует

  • пользователей,
  • ролей,
  • безопасности на уровне контроллера и на уровне действий,
  • безопасности на уровне элементов (применение пользователей или ролей к элементам),
  • усечение безопасности (скрытие некоторых менюварианты, основанные на вышеупомянутых настройках).

Если бы вы оценили время и усилия, чтобы произвести это, и вам пришлось бы выдать клиенту вопрос, что бы это было?Вам не нужно давать число в деньгах, только оплачиваемые часы.

1 Ответ

3 голосов
/ 13 декабря 2010

Вам не нужно указывать число в деньгах, только оплачиваемые часы.

Вы хотите, чтобы кто-то делал вашу работу бесплатно? Давай ...

Авторизация

В любом случае, я бы использовал Code Access Security и олицетворение для обеспечения безопасности во всех моих службах. Проверьте атрибут PrinicpalPermission .

Контроллер / Уровень действия

Что касается MVC, просто используйте атрибут Authorize , чтобы обеспечить авторизацию. Получите его, чтобы обеспечить более точный контроль.

Оформление безопасности

if (System.Thread.Threading.CurrentThread.CurrentPricinpal.IsInRole("Administrator"))
   //show menu item

Уровень предмета

Невозможно с реализацией MVC по умолчанию. Вам нужно проверить свои действия вручную.

if (!System.Thread.Threading.CurrentThread.CurrentPricinpal.IsInRole(item.RequiredRole))
  return View("AccessDenied", null); //return accessdenied view.

Аутентификация

Я не знаю, какие у вас пользователи. Все ли зарегистрированы в домене AD? Затем используйте аутентификацию Windows для аутентификации ваших пользователей. Это просто настройка IIS ..

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