使用自定义方法模拟MembershipProvider

时间:2012-10-17 22:48:34

标签: asp.net-mvc mocking asp.net-membership

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

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

我是不是错了?我是否需要另一个包含我的新提供者方法的接口层?

1 个答案:

答案 0 :(得分:0)

我不完全确定我明白你的问题是什么。如果您在MembershipProvider上使用包装器接口,那么提供程序实现的方法无关紧要,因为您的应用程序仅使用该接口,您可以将接口更改为您想要的任何内容。

或者您是否在询问如何从自定义提供程序中调用自定义方法?如果是这样的话,那么关于嘲讽和不仅仅是红色鲱鱼的整个过程,因为它与问题无关。

如果这确实是您的问题,那么您只需将Membership.Provider方法强制转换为您的提供者类型。像这样:

var myProvider = Membership.Provider as MyCustomerMembershipProvider;
myProvider.CreateUser(...);