Asp.net mvc 3 MVC 3-Ninject-Membership-SQL Server Express 2008 r2

Asp.net mvc 3 MVC 3-Ninject-Membership-SQL Server Express 2008 r2,asp.net-mvc-3,ninject,sql-server-express,custom-membershipprovider,Asp.net Mvc 3,Ninject,Sql Server Express,Custom Membershipprovider,以下是我的设置: 我已经按照Pro ASP.NET MVC3框架书中的SportsStore对我的应用程序进行了建模 对于那些没有这本书的人: 我有两个项目捆绑在一个解决方案中- --Project.Domain-- Abstract(folder) ..IObjectRepository.cs Concrete(folder) ..EFObjectRepository.cs Entities(folder) ..Data.cs - contains class d

以下是我的设置:

我已经按照Pro ASP.NET MVC3框架书中的SportsStore对我的应用程序进行了建模

对于那些没有这本书的人:

我有两个项目捆绑在一个解决方案中-

--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
中创建帐户的所有方法

如果你想了解更多信息,请告诉我


提前感谢您防止精神错乱。

如果您想提供自己的
IAuthProvider
实现,您需要执行以下操作:

  • 将自定义类添加到sportstore.WebUI\Infrastructure\Concrete,并让它从
    IAuthProvider继承

    公共类MyCustomAuthProvider:IAuthProvider { 公共bool身份验证(字符串用户名、字符串密码) { //使用自定义逻辑实现此功能 抛出新的NotImplementedException(); } }

  • 在NinjectControllerFactory中更改绑定:

改变

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

ninjectKernel.Bind().To();

这将改变您的依赖注入。AccountController现在将使用您的自定义实现。

SportsStore在AccountController中使用IAuthProvider将您的控制器与FormsAuthentication分离。你能用这个吗?还是你想做点别的?我想我能用这个。顺便说一句,感谢您提醒我接受。我已经这样做了,但是我在Views>Shared>\u LogonPartial中也遇到了一个错误-如何更改AccountController中的Register()方法以使用DI?
ninjectKernel.Bind<IAuthProvider>().To<MyCustomAuthProvider>();