Кто-нибудь знает, будет ли создан пользовательский член по умолчанию, используемый для использования с EF 5 (например, SqlMembershipProvider и ActiveDirectoryMembershipProvider), или нам все равно придется создавать собственные (то есть для Code First конечно)?.NET 4.5, EF 5 и MembershipProvider
ответ
Фактически после долгих комментариев и объяснений это приводит к тому, что для EF будет установлен членский член по умолчанию, и - угадайте, что, угадайте, что - он называется EFMembershipProvider. Here is a link. Теперь это действительно здорово, потому что сторонние реализации MembershipProvider больше не понадобятся (или соответствующая ручная реализация - это было своего рода БОЛЬШОЙ и полный избыток для небольших проектов).
ОБНОВЛЕНИЕ В настоящее время, похоже, этот провайдер не доступен. Я не знаю, будет ли она развиваться и включаться в будущее.
Поскольку мы используем SimpleMembershipProvider и миграции при использовании EF Code First, это то, что я делаю сейчас. Вы также можете реализовать ExtendedMembershipProvider, для чего требуется немного больше усилий.
Для меня лучшим решением на данный момент является наследование SimpleMembershipProvider и изменение только тех вещей, которые мне нужны (я использую большую часть кода из моей предыдущей реализации MembershipProvider), например, регистрируясь с помощью электронной почты или имени пользователя.
Красивый поиск. –
Я предполагаю, что по-прежнему потребуется некоторая работа, чтобы использовать его с другой базой данных.Я не думаю, что он будет использовать код сначала beacause, сначала не является частью .NET, но этот класс выглядит как часть .NET. Поэтому каждый сервер базы данных потребует замены EDMX своим собственным. –
Ну, этот сценарий можно отменить, особенно после того, как они отделили EF от .NET. Однако это показывает, что они очень сильно работают над EF и его интеграцией с каркасом - возможно, в будущем мы также увидим такой продвинутый феномен. – Unknown
Я реализовал CodeFirst MemberhipProvider & Роль с моей библиотекой ASP.NET Silversite CMS, которую можно найти на сайте silversite.codeplex.com. Библиотека также поддерживает несколько DbContext для баз данных CodeFirst. Насколько я знаю, в настоящее время реализация нарушена, и у меня не было времени ее исправить. Кроме того, провайдеры профилей и сеансов по-прежнему отсутствуют. Но у меня есть код от поставщиков MySql, который не должен быть слишком сложным для переноса.
Вам не следует комбинировать членский провайдер и EF. У поставщика членства есть своя логика, инкапсулированная в хранимые процедуры - просто используйте ее как есть или вы можете нарушить ее безопасную реализацию! Используйте EF для классов, которыми вы владеете не для системных классов. –
Насколько я знаю, и MSDN сообщает мне, что MemberhipProvider является абстрактным классом, который может быть унаследован для реализации пользовательского поставщика членства. Кроме того, в MSDN указано, что вы захотите реализовать своего собственного провайдера, если вы используете Oracle, например. Возможно, вы имеете в виду SqlMembershipProvider, который представляет собой конкретную реализацию, поставляется с собственной базой данных (aspnetdb) и использует хранимые процедуры. – Unknown
Также я знаю, что когда вам нужно хранить учетные данные пользователя, будет лучше, если вы реализуете своего собственного провайдера, наследуя от MembershipProvider, а не просто произвольно придумывая свою собственную логику. – Unknown