简体   繁体   English

如何在代码中更改ASP.NET成员资格提供程序?

[英]How do I change the ASP.NET Membership Provider in code?

How do I change the ASP.NET Membership Provider in code? 如何在代码中更改ASP.NET成员资格提供程序? I need to override it for unit testing. 我需要重写它进行单元测试。

I suppose you can't do it in a good way, as Membership.Provider hasn't setter, but you can always change it by reflection. 我想您不能以一种好的方式来完成它,因为Membership.Provider尚未设置,但是您始终可以通过反射来更改它。 Membership class has such field that stores current Membership provider: Membership类具有用于存储当前成员资格提供者的字段:

public static class Membership
{
   private static MembershipProvider s_Provider;

So if you set it to custom value by reflection, then ASP.Net controls will use your new provider. 因此,如果通过反射将其设置为自定义值,则ASP.Net控件将使用新的提供程序。

Originally this property initialized only once and you can't change normally. 最初,此属性仅初始化一次,并且您无法正常更改。

Other way might be having different config for unit tests that will point to different Membership provider in membership section, but don't know will it work for Membership provider or not. 其他方式可能是针对单元测试使用不同的配置,该配置将指向“成员资格”部分中的不同“成员资格提供程序”,但不知道它是否适用于“成员资格提供程序”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM