0

Вот мои настройки:MVC 3 - Ninject - членство - SQL Server Express 2008 R2

Я смоделировал мое приложение после SportsStore в Pro ASP.NET MVC3 Framework книге.

Для тех, которые не имеют книги:

У меня есть 2 проектов в комплекте в растворе -

--Project.Domain-- 

    Abstract(folder) 
    ..IObjectRepository.cs 

    Concrete(folder) 
    ..EFObjectRepository.cs 

    Entities(folder) 
    ..Data.cs - contains class definition for Object 

--Project.WebUI-- 

    Areas(folder) 
    ..Area1 
    ..Area2 

    Infrastructure(folder) 
    ..NinjectControllerFactory.cs 

Мой вопрос, как я могу организовать пользовательского поставщика членства с Ninject, с как мое приложение в настоящее время структурировано?

Просьба указать код на C# и объяснить, где должен существовать каждый файл в моей структуре.

Просьба также предоставить все способы создания учетной записи в пределах CustomMembershipProvider.

Если вы хотите получить дополнительную информацию, пожалуйста, дайте мне знать.

Заранее благодарим за предотвращение безумия.

+0

SportsStore использует IAuthProvider в AccountController, чтобы отделить ваш контроллер от FormsAuthentication. Можете ли вы использовать это или хотите сделать что-то еще? –

+0

Я думаю, я могу использовать это. Кстати, спасибо за хедз-ап о принятии. –

ответ

1

Если вы хотите поставить свою собственную реализацию IAuthProvider вам нужно сделать следующее:

  • Добавьте свой собственный класс SportsStore.WebUI \ Инфраструктура \ Бетон и пусть он наследует от IAuthProvider

    public class MyCustomAuthProvider: IAuthProvider { Публичный bool Аутентификация (имя пользователя строки, строковый пароль) { // Реализация этой функции с помощью настраиваемой логики throw new NotImplementedException(); }}

  • В NinjectControllerFactory изменить связывание:

Изменить

ninjectKernel.Bind<IAuthProvider>().To<FormsAuthProvider>(); 

Для

ninjectKernel.Bind<IAuthProvider>().To<MyCustomAuthProvider>(); 

Это изменит вашу зависимость инъекций. Теперь AccountController будет использовать вашу собственную реализацию.

+0

Я сделал это, но я получаю сообщение об ошибке Просмотров> Общие> _LogonPartial Также - как мне изменить метод Register() в AccountController для работы с DI? –