Asp.net mvc 使用unity解析自定义成员资格提供程序

Asp.net mvc 使用unity解析自定义成员资格提供程序,asp.net-mvc,unity-container,Asp.net Mvc,Unity Container,我有一个自定义的会员资格提供者,在我在web应用程序中使用unity之前,它可以正常工作 public class CustomMemberProvider : MembershipProvider 我在谷歌上搜索了一下,找到了下面的代码片段,放在全局文件的应用程序开始部分,但我不确定我需要对它做些什么才能让它为我的自定义提供者工作。基本上,当我在安全控制器上调用validateUser时,它无法解决依赖关系 _container.RegisterType<IFormsA

我有一个自定义的会员资格提供者,在我在web应用程序中使用unity之前,它可以正常工作

public class CustomMemberProvider : MembershipProvider
我在谷歌上搜索了一下,找到了下面的代码片段,放在全局文件的应用程序开始部分,但我不确定我需要对它做些什么才能让它为我的自定义提供者工作。基本上,当我在安全控制器上调用validateUser时,它无法解决依赖关系

        _container.RegisterType<IFormsAuthenticationService, FormsAuthenticationService>()
        .RegisterType<IMembershipService, AccountMembershipService>()
        .RegisterInstance<MembershipProvider>(Membership.Provider);
我以为可以将AccountMembershipService交换为CustomMemberProvider,但这会导致标准UnityController工厂中的控制器类型为null

有人有过同样的问题吗


谢谢。

AccountMembershipService可能与VS生成的服务相同。此服务实现IMembershipService—由代码生成的自定义接口。简单地将AccountMembershipService换成CustomMemberProvider并不是一回事

本质上,您的自定义成员资格提供程序实现抽象类MembershipProvider,它不同于此AccountMembershipService,后者是SqlMembershipProvider的包装


您需要为您的成员资格提供程序制作一个包装器来实现一个类型。另外,我很确定Membership.Provider将带您访问System.Web.Security.MembershipProvider,而不是您的自定义提供商。

感谢您的回复。CustomMemberProvider继承MembershipProvider并重写这些方法。我有一个实现IMembershipService的CustomMembershipService,我在Webconfig中注册了CustomMemberProvider,而不是默认的。仍然没有解析安全控制器中的依赖项。您能否再发布一点代码,最好是所有这些对象是什么,至少是它们的名称空间以及global.ascx中的包含项?