2013-09-02 2 views
0

Мне поручено создать веб-систему входа в систему ASP.net MVC с регистрацией, забыли пароль и логин, но существующая система уже имеет все хранимые процедуры для поддержки эту функциональность, и они не очень хорошо вписываются в интерфейсы Membership.Есть ли какие-либо преимущества для создания пользовательского поставщика членства

Есть ли какие-либо преимущества для внедрения пользовательского поставщика членства? This answer ссылается на «интеграцию», но я не уверен, к какой интеграции он обращается. Помимо этого, что является преимуществом (-ами)?

Я вижу, как пользовательский поставщик роли мне пригодится, например, используя атрибуты Authorize для моих действий MVC. Могу ли я создать пользовательский поставщик роли без создания/внедрения поставщика членства?

ответ

0

Если у вас есть возможность использовать MVC 4, вы можете легко выполнить свое требование с помощью SimpleMembershipProvider. Он предоставляет простой в использовании интерфейс для регистрации нового пользователя, изменения/забывания пароля и входа в систему. Он также имеет свой собственный RoleProvider, который хорошо работает для большинства сценариев управления ролью.

Для начала, это хорошая структура для использования. Самая лучшая часть - вы можете ее настроить каждый раз, когда захотите (это будет происходить в большинстве случаев, когда вы загружаете механизм аутентификации и авторизации, чтобы делать больше, чем то, что он должен в идеале делать). Пока ваш MembershipProvider происходит от ExtendedMembershipProvider, он будет хорошо работать с WebSecurity.

Преимущество внедрения пользовательского провайдера заключается в том, что вы получаете полный контроль над функциональными возможностями, предоставляемыми API-провайдером, например. Если вы хотите аутентифицировать пользователя с использованием пользовательского алгоритма, вы можете переопределить метод ValidateUser и добавить туда свою собственную реализацию.

О вашем последнем вопросе: «Могу ли я создать поставщика роли роли без создания/внедрения поставщика членства?», Я думаю, что это должно быть возможно, но не пробовал лично. Вы можете попробовать это со ссылкой на это link.

Надеюсь, это поможет.

+0

Спасибо за ответ. Я не верю, что какая-либо из коробки реализация членского провайдера будет работать для меня, так как я должен использовать существующие таблицы и хранимые процедуры. Таким образом, именно поэтому я задаю вопрос о преимуществах/преимуществах использования CustomerMembershipProvider, а не просто кодировании методов безопасности в классе обслуживания. –

+0

Да, в этом случае вы должны реализовать своего собственного провайдера, который использует собственные таблицы и SP в реализации поставщика. Если вы внедряете пользовательский поставщик, получающий ExtendedMembershipProvider, вы можете использовать существующие хорошо продуманные API WebSecurity, которые внутренне используют реализацию поставщика, которая может быть вашим провайдером. В противном случае вам придется начинать с нуля с разработки API. – SBirthare