当覆盖MembershipProvider并直接调用它时,有没有办法填写Initialize方法的NameValueCollection配置参数,而无需手动查看配置文件的设置?
显然这个初始化被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);