6

Hi Ho avuto qualche problema che permettono di appartenenze personalizzato e provider di ruoli, ho ottenuto l'errore seguenti:ASP.NET MVC 3 Ninject personalizzato appartenenza e provider di ruoli

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.

E 'indicando il mio mvc3.ninject kernel.Inject(Membership.Provider)

mio 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();    
} 

mio RoleProvider:

public class DziennikRoleProvider : RoleProvider 
{ 
    [Inject] 
    private IUzytkownicyRepository repository { get; set;} 

mio MembershipProvider:

public class DziennikMembershipProvider : MembershipProvider 
{ 
    [Inject] 
    private IUzytkownicyRepository repository { get; set; } 

Il mio file 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> 
+0

http://stackoverflow.com/questions/8248545/custom-role-provider-using-di-ninject-throwing-error http://stackoverflow.com/questions/6519720/using-ninject-with-a- custom-role-provider-in-an-mvc3-app http://stackoverflow.com/questions/8409109/how-to-inject-repositories-into-a-custom-membershipprovider –

+0

http://stackoverflow.com/questions/2963611/how-can-you-inject-an-asp-net-mvc2-custom-membership-provider-using-ninject ... e molti altri –

+0

sì, li ho visti tutti, ma ancora la mia applicazione non può iniziare – Nozi

risposta

7

È necessario configurare le associazioni prima si inietta i provider.

private static void RegisterServices(IKernel kernel) 
{ 
    kernel.Bind<IUnitOfWork>().To<EFContext>().InRequestScope(); 
    kernel.Bind<IUzytkownicyRepository>().To<UzytkownicyRepository>().InRequestScope(); 

    kernel.Inject(Membership.Provider); 
    kernel.Inject(Roles.Provider); 
} 
1

Ho avuto lo stesso problema. La mia soluzione era di cambiare il metodo di repository in Public. Ninject non può essere inserito in una proprietà privata.

Problemi correlati