ASP.NET MVC 3 Ninject 自定义成员资格和角色提供程序
您好,我在启用自定义成员资格和角色提供程序时遇到一些问题,出现以下错误:
执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。
System.InvalidOperationException:找不到默认成员资格提供程序。
它指向我的 mvc3.ninject kernel.Inject(Membership.Provider)
My MVC3.Ninject in app_start:
private static void RegisterServices(IKernel kernel)
{
kernel.Inject(Membership.Provider);
kernel.Inject(Roles.Provider);
kernel.Bind<IUnitOfWork>().To<EFContext>().InRequestScope();
kernel.Bind<IUzytkownicyRepository>().To<UzytkownicyRepository>().InRequestScope();
}
My RoleProvider:
public class DziennikRoleProvider : RoleProvider
{
[Inject]
private IUzytkownicyRepository repository { get; set;}
My MembershipProvider:
public class DziennikMembershipProvider : MembershipProvider
{
[Inject]
private IUzytkownicyRepository repository { get; set; }
我的 WebConfig 文件:
<membership defaultProvider="DziennikMembershipProvider">
<providers>
<clear/>
<add name="DziennikMembershipProvider" type="Dziennik_MVC.Helpers.DziennikMembershipProvider, Dziennik_MVC" connectionStringName="EFDbContext"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear/>
</providers>
</profile>
<roleManager defaultProvider="DziennikRoleProvider" enabled="true" cacheRolesInCookie="true">
<providers>
<clear />
<add name="DziennikRoleProvider" type="Dziennik_MVC.Helpers.DziennikMembershipProvider, Dziennik_MVC" connectionStringName="EFDbContext" />
</providers>
</roleManager>
Hi i got some problems enabling custom Membership and Role Provider, i got following error:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
System.InvalidOperationException: Default Membership Provider could not be found.
It's pointing to my mvc3.ninject kernel.Inject(Membership.Provider)
My MVC3.Ninject in app_start:
private static void RegisterServices(IKernel kernel)
{
kernel.Inject(Membership.Provider);
kernel.Inject(Roles.Provider);
kernel.Bind<IUnitOfWork>().To<EFContext>().InRequestScope();
kernel.Bind<IUzytkownicyRepository>().To<UzytkownicyRepository>().InRequestScope();
}
My RoleProvider:
public class DziennikRoleProvider : RoleProvider
{
[Inject]
private IUzytkownicyRepository repository { get; set;}
My MembershipProvider:
public class DziennikMembershipProvider : MembershipProvider
{
[Inject]
private IUzytkownicyRepository repository { get; set; }
My WebConfig file:
<membership defaultProvider="DziennikMembershipProvider">
<providers>
<clear/>
<add name="DziennikMembershipProvider" type="Dziennik_MVC.Helpers.DziennikMembershipProvider, Dziennik_MVC" connectionStringName="EFDbContext"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear/>
</providers>
</profile>
<roleManager defaultProvider="DziennikRoleProvider" enabled="true" cacheRolesInCookie="true">
<providers>
<clear />
<add name="DziennikRoleProvider" type="Dziennik_MVC.Helpers.DziennikMembershipProvider, Dziennik_MVC" connectionStringName="EFDbContext" />
</providers>
</roleManager>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须在注入提供程序之前设置绑定。
You have to setup the bindings before you inject the Providers.
我也有同样的问题。我的解决方案是将存储库方法更改为公共。 Ninject 不能注入私有财产。
I had the same problem. My solution was to change the repository method to be Public. Ninject cannot inject into a private property.