Аутентификация и авторизация в .Net - PullRequest
1 голос
/ 07 августа 2009

Я изо всех сил пытаюсь выбрать, что использовать для аутентификации и авторизации для моего приложения .Net. Я использую ASP.Net MVC с C #. В Java я считаю Spring Acegi Securiyy очень простым и удобным для реализации, чтобы защитить URL-адреса, скрыть меню и кнопки и даже защитить свои методы.

Также я бы использовал Windows Active Directory для хранения профиля пользователя.

То, что доступно в мире .Net, похожее на Spring Acegi. В любом случае вот что я хочу -

  1. Конфигурации типа XML для защиты URL-адресов на основе ролей, т. Е. Только администратор может получить доступ к страницам / admin / * и т. Д.
  2. В интерфейсе пользователя я хочу скрыть меню и кнопки в зависимости от роли, например, если (роль администратора) showButton.
  3. Хотя вышеперечисленного достаточно, но я бы тоже хотел защитить свой бизнес-уровень. Это потому, что я также раскрыл веб-сервис.

Я знаю, что могу написать обычное, но зачем изобретать велосипед, если доступна какая-то библиотека .net.

Ответы [ 3 ]

1 голос
/ 07 августа 2009
  1. Конфигурация XML? Нет, не с базовыми вещами MVC. С помощью WebForms можно утверждать, что правила в web.config основаны на XML, но они не применяются к ASP.NET MVC - НЕ ИСПОЛЬЗУЙТЕ путь / местоположение в web.config. Авторизация контролируется атрибутами в классе контроллера. Однако кто-то написал XML-модуль авторизации , который может подойти
  2. В пользовательском интерфейсе вы можете сделать это в представлении, если хотите. Вы можете скрыть, основываясь как на аутентифицированных, так и на не аутентифицированных, например,

    Привет аутентифицированный пользователь

    и вы также можете использовать объект Request.User, чтобы быть более конкретным

    Привет, суперпользователь

  3. Вы можете защищать веб-службы с помощью имен пользователей и паролей, однако, если вы хотите передавать идентификационные данные с веб-сайта на веб-службу, поскольку веб-сайт вызывает более сложные вызовы. Здесь уже есть много вопросов и ответов об аутентификации и авторизации WCF.

0 голосов
/ 07 августа 2009

Это не реальный ответ, но IMVHO, подумайте о реализации вашей собственной логики. Это правда, колесо уже было изобретено в этом случае, но я испытываю трудности в большинстве случаев при использовании аутентификации и авторизации Asp.NET. Вы можете работать очень быстро, и это хорошо, если у вас простой сценарий. Если вы хотите выйти за рамки этого, вы рискуете потерять все время, которое вы изначально заработали. Но, как я уже говорил, это только мое мнение.

0 голосов
/ 07 августа 2009

Это правда. Net имеет очень мощный движок. Вам нужно взглянуть на существующую реализацию RoleProvider и MembershipProvider или создать свою собственную. В файле web.config вам нужно указать, какой из провайдеров использовать, и как минимум указать, какие папки защищены ролью. Для обеспечения безопасности на уровне бизнес-логики вам просто необходимо иметь доступ к любому месту Membership.GetUser, Roles.IsUserInRole, ...

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