当重写MembershipProvider并直接调用它时,是否有一种方法可以填充Initialize方法的NameValueCollection配置参数,而无需手动查看配置文件中的设置?
显然,此Initialize是由asp.net调用的,并且该配置文件已在某处填充。我已经实现了自己的MembershipProvider,并且可以通过内置控件正常运行。
我想创建我的提供程序的新实例并直接对其进行调用,但我并不是真的想解析MembershipProvider的.config,它是连接字符串名称,然后是连接字符串(如果已经在某个地方完成的话) 。
最佳答案
tvanfosson-感谢您的帮助。 (如果我有必要的15分,我会投票给你)
从您的链接,我能够弄清楚。事实证明,初始化过程的第二个参数是提供程序提供的参数列表,可以通过以下方式访问:
string configPath = "~/web.config";
Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);
MembershipSection section = (MembershipSection)config.GetSection("system.web/membership");
ProviderSettingsCollection settings = section.Providers;
NameValueCollection membershipParams = settings[section.DefaultProvider].Parameters;
Initialize(section.DefaultProvider, membershipParams);