2012-10-17 43 views
1

我有一个ASP.NET MVC应用程序,我正在努力。我正在使用自定义MembershipProvider(MyCustomMembershipProvider)来访问成员资格信息,因为我们已经有了一个需要使用我们自己的模式的数据库。模拟MembershipProvider与自定义方法

我正在使用类似于NerdDinner 2示例的类,其中包含AccountProvider的AccountMembershipService(实现IMembershipService),因此我可以注入不同的模拟提供者。但是,我已经使用CreateUser和ChangePassword的几种不同方法扩展了MyCustomMembershipProvider。除非您知道这是自定义方法,否则这些方法在MembershipProvider中不可用。

我该怎么解决这个问题?我是否需要另一个包含我的新提供者方法的接口层?

+0

我是新来的MVC和模拟测试,所以我可能不会很好地解释情况。我有一个AccountMembershipService,它将MembershipProvider作为构造函数中的一个参数。这样,当我运行应用程序时,传入的MembershipProvider是一个MyCustomMembershipProvider ...当我测试时,传入的MembershipProvider是一个MockMembershipProvider。因此,当我在AccountMembershipService上调用CreateUser时,CreateUser在AccountMembershipServices包含的MembershipProvider上不可用。 – user1754692

回答

0

我不完全确定我明白你的问题是什么。如果您在MembershipProvider上使用包装器接口,那么提供器实现的方法应该没有关系,因为您的应用只使用接口,并且可以将接口更改为任何所需的接口。

或者你问你如何从自定义提供程序调用自定义方法?如果是这样,那么关于嘲讽的全部内容以及不仅仅是red鱼,因为它与问题无关。

如果这确实是您的问题,那么您只需将Membership.Provider方法转换为您的提供程序的类型即可。这样的事情:

var myProvider = Membership.Provider as MyCustomerMembershipProvider; 
myProvider.CreateUser(...); 
相关问题