Использование поставщика членства .NET в n-уровневом веб-приложении - PullRequest
3 голосов
/ 22 января 2011

В настоящее время я создаю n-уровневое веб-приложение, в основном для отработки новых технологий и шаблонов - репозитории, uow, services, ioc, ef4 и mvc3.

После долгих попыток у меня есть ef4, сохраняющий мои сущности через мой сервисный слой с использованием репозиториев.

Сейчас я начинаю определять методы, которые мне понадобятся на уровне сервисов, и думаю, что сейчас самое время приступить к реализации аутентификации. Обычно я запускаю свой собственный код аутентификации, но друг сказал мне, чтобы он попробовал поставщика членства.

Теперь, очевидно, я собираюсь использовать это в веб-приложении mvc3, но мне интересно, могу ли я использовать это и в моем слое обслуживания? Кто-нибудь может указать мне какие-либо статьи или сообщения в блоге?

NB. Извиняюсь, если я утверждаю очевидное, однако я просто хотел прояснить, что когда я имею в виду мой уровень обслуживания, я не имею в виду WCF; это мои собственные классы, которые уважают шаблон уровня сервиса - http://martinfowler.com/eaaCatalog/serviceLayer.html. Сказав это, я могу пожелать представить этот уровень сервиса через сервисы WCF на более позднем этапе.

Я уже несколько часов гуглю и ничего не придумал!

Любая помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 01 февраля 2011

Один из способов сделать это - создать класс «SecurityContext», содержащий имя пользователя, удаленный IP-адрес и т. Д. Затем создайте класс Agent, который будет действовать как прокси-класс для ваших служб WCF.В классе Agent вы можете создать контекст безопасности со статическим классом.Затем вы можете передать этот SecurityContext на другие уровни всех методов обслуживания, которые нуждаются в защите.Таким образом, он достаточно гибок, чтобы выполнять аутентификацию на внешнем интерфейсе, аудит и т. Д. На уровне домена / бизнес-логики.

1 голос
/ 22 января 2011

Это 18 статей серии статей от Скотта Митчелла.

Это очень глубокое объяснение всех функций, касающихся провайдеров аутентификации, авторизации и членства в asp.net.Я никогда не нашел лучшего источника по этому вопросу от того же автора.

Вы можете скрыть реализацию через использование шаблона репозитория, как вы уже сегодня делаете с EF4, без каких-либо особых изменений

Надеюсьэто помогает!

...