Подтвердить что ты не робот

Как использовать SimpleMembership в MVC без Entity Framework

Каковы необходимые шаги для использования SimpleMembership (ASP.NET MVC 4) с RavenDB (или другими базами данных) вместо SQL Server?

Я использую для переопределения MembershipProvider, но как он работает с новым SimpleMembership?

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

Как насчет конфигурации? Я знаю, что метод InitializeDatabaseConnection обычно отвечает за инициализацию всего shebang, но я не думаю, что я должен его назвать, если я не использую Entity Framework.

К сожалению, я не нашел много ресурсов о новом SimpleMembership, кроме двух ссылок, которые были не очень полезны:

http://igambin.blogspot.ca/2012/08/simplemembershipprovider-huh.html

http://blog.osbornm.com/archive/2010/07/21/using-simplemembership-with-asp.net-webpages.aspx

4b9b3361

Ответ 1

Итак, вот что я нашел после просмотра некоторого исходного кода (MVC4).

http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/553690ac9488#src%2fWebMatrix.WebData%2fExtendedMembershipProvider.cs

SimpleMembership - это реализация абстрактного класса ExtendedMembershipProvider. Код внутри SimpleMembership - это в основном операции SQL, и некоторые вызовы в базовую (называемую "предыдущей" в документации) MembershipProvider.

Я не думаю, что это было бы полезно (в моем случае) переопределить SimpleMembership, поскольку его реализация в основном связана с SQL Server. Вместо этого, насколько я понимаю, я должен реализовать ExtendedMembershipProvider. Затем, установив эту реализацию в файле web.config, помощник WebSecurity обойдет SimpleMembership (реализация по умолчанию) и вызовет мою реализацию ExtendedMembershipProvider.

Я не думаю, что сделаю это как можно скорее, так как выглядит еще сложнее, чем раньше (больше методов для реализации)... но все же выполнимо.

Однако, все это сказало, я немного разочарован тем, что нам все еще нужно работать с MembershipProvider, который, IMHO, далеко (много статических и внутренних вещей) из всей зависимости что мы так любим с ASP.Net MVC/WebApi.

Изменить 1

Этот вопрос был освещен до того, как Джон Галлоуэй написал этот учебник: http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx

Но мой ответ остается действительным, поскольку это (взято из статьи Джона Гэллоуэй) возобновляет его:

Обратите внимание, что SimpleMembership по-прежнему требует некоторого вкуса SQL Server - он не будет работать с базами данных MySQL, NoSQL и т.д. Вы можете взглянуть на код в WebMatrix.WebData.dll с помощью инструмента, такого как ILSpy, если вы как понять, почему - есть места, где SQL Server специфический SQL выполняются, особенно при создании и инициализация таблиц. Кажется, что вы можете работать с другой базы данных, если вы создали таблицы отдельно, но у меня нет попробовал, и в данный момент он не поддерживается.

Ответ 3

SimpleMembership на самом деле не предназначен для использования со старыми MembershipProviders, поскольку он не заполняет все те же контракты, которые предполагаются для обычных MembershipProviders. Он в основном предназначен для использования через помощника WebSecurity.

Эта ссылка может быть полезна для получения дополнительной информации: Учебник по веб-страницам