0

Структура моего решения заключается в следующем:Где реализовать SimpleMembershipProvider в растворе с MVC4 проекта и проекта DAL

Solution tree

Я использую ÀSP.NET MVC 4 и проект DAL использует Entity Framework 5 и Code First рабочий процесс. Шаблон MVC имеет набор <profile defaultProvider="DefaultProfileProvider">, и мне нужно реализовать SingleMemebershipProvider (не создавая новый шаблон, который включает его по умолчанию). Я нашел несколько руководств по этой теме, но для моего сценария мне интересно, где место SingleMemebrshipProvider.

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

Однако его услуги будут использованы из проекта NVC, а также я задаюсь вопросом, не сломаю ли какие-либо концепции, если попытаюсь установить SingleMemebrshipProvider в другой проект. Шаблон по умолчанию, который содержит SingleMemebrshipProvider, имеет контроллер - AccountController, Filter- InitializeSingleMemebrshipProviderAttributes, Models- AccountModels и, возможно, MVC ожидает найти эти классы.

Однако я не уверен, какой подход принять. В решении, структурированном таким образом, где находится место SingleMemebrshipProvider? (Если возможно, объясните, почему тоже).

ответ

1

Он относится к проекту ASP.NET MVC, если вы меня спросите. Обычно я добавляю новую папку в веб-проект под названием «Безопасность». Я помещал вещи, подобные реализациям членства и роли в этой папке.

Вы должны спросить себя, собираетесь ли вы поделиться реализациями по другим веб-проектам, если тогда вы можете создать отдельный проект под названием NameOfProject.Web.Mvc и поместить все ваши связанные с mvc вещи, такие как поставщик членства и роли , HtmlHelpers, Фильтры и т.д. здесь.

Я использую тот же подход, чтобы отделить мои службы REST на основе веб-API от проекта MVC, переместив их в отдельный проект под названием NameOfProject.Web.Http. Таким образом, очень просто создать другой клиент, например консольное или winforms-приложение, использующее ту же самую реализацию службы, что и другие ваши клиенты.

Вот пример моей структуры проекта без отдельного проекта.

enter image description here

Пример с отдельным проектом MVC атрибуты

enter image description here

Я надеюсь, что это помогает!

Удачи вам!

+0

Идея другого проекта на самом деле звучит очень хорошо для меня. Меня беспокоит то, что меня беспокоит (потому что я никогда не пользовался SimpleMembership или любым другим поставщиком членства) не будет слишком сложным с использованием функций провайдера. То, о чем я могу думать прямо сейчас - если я создам еще один проект для SimplerMP, только ссылки из проекта MVC на это достаточно, чтобы начать использовать атрибуты, такие как AllowAnonymous, Authorize (Role ..etc, etc ...? – Leron

+0

Да, это будет работать, как и ожидалось, потому что вы регистрируете провайдера внутри web.config в разделе и . После регистрации через web.config вы можете использовать определенные атрибуты mvc, такие как Authorize, AllowAnonymous и т. Д. Более подробную информацию можно найти здесь: http://msdn.microsoft.com/en-us/library/6e9y4s5t(v=vs. 100) .aspx –

+0

Ницца, спасибо большое. Я думаю, что на этот раз я буду придерживаться оригинального проекта MVC, как вы изначально предложили. Просто привыкнуть к SingleMemebershipProvider. Но мне очень нравится идея разделения. +1 за это! – Leron

 Смежные вопросы

  • Нет связанных вопросов^_^