Могу ли я использовать Entity Framework с членством в ASP.NET?

.net asp.net asp.net-membership entity-framework

Вопрос

Я создаю (на самом деле, заново создаю) приложение, в котором есть пользовательские и другие данные в базах данных MS-Access. Данные будут перемещены на SQL Server, и часть этого включает миграцию пользователей. Я хочу использовать EF для ORM, и я почти уверен, что знаю, какая модель данных будет в SQL Server. Я новичок в EF, но не в ASP.NET, и я хотел бы воспользоваться возможностями членства в ASP.NET. Я думаю о нескольких способах сделать это и хотел бы получить несколько советов. До сих пор я провел лишь небольшое исследование по этой идее, может быть, на нее ответили в другом месте. Итак, здесь идет группа связанных вопросов.

  1. Может ли EF работать напрямую с членством ASP.NET через некоторый класс или пространство имен, о которых я не знаю?

  2. Если я перевожу пользователей в систему Membership, для выравнивания их идентификаторов пользователей с данными в других таблицах я должен создать еще один набор таблиц для пользовательских данных поверх таблиц aspnet_ * в виде DotNetNuke?

  3. Я хочу избежать ситуации, когда я использую встроенные функции членства только для аутентификации пользователя и переключаюсь в контекст EF, когда работаю с данными, помеченными пользователем. Кажется неуклюжим выводить информацию пользователя для привязки к столбцу в GridView, заходя в членство пользователя для каждой строки, но, может быть, это то, что нужно? Нужно ли мне смириться с этим и реплицировать классы членства в EF для целей поиска данных?

  4. Я думал о том, чтобы, возможно, реализовать своего рода провайдера EF для членства, полагая, что, возможно, тогда провайдер мог бы сидеть внутри общей модели данных EF. Это сумасшедший разговор? (Я никогда раньше не писал своего собственного провайдера)

Не стесняйтесь сказать мне, что я не имею никакого смысла.

Принятый ответ

Почему бы не сделать это наоборот? Вы можете реализовать свой собственный поставщик членства для asp.net, который использует модель, которую вы хотите / нуждаетесь.

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


Популярные ответы

  1. Мы делаем, но мы не отображаем таблицы членства. Вы не должны предполагать использование поставщика членства SQL.
  2. Мы отображаем личность пользователя, а не идентификатор БД. Тонкий, но важный. Опять же, помните, что есть другие поставщики членства (например, аутентификация домена).
  3. Вы можете уточнить вопрос? Вам не нужно будет копировать всю информацию о членстве в вашей модели EF, но вам потребуется список известных идентификаторов.
  4. Нет, совсем не сумасшедший, но сложный и, вероятно, ненужный.


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему