当前位置:  开发笔记 > 编程语言 > 正文

自定义MembershipProvider Initialize方法

如何解决《自定义MembershipProviderInitialize方法》经验,为你挑选了2个好方法。

覆盖MembershipProvider并直接调用它时,有没有办法填充Initialize方法的NameValueCollection配置参数,而无需手动查看配置文件中的设置?

显然这个Initialize是由asp.net调用的,配置正在某处填充.我已经实现了自己的MembershipProvider,它可以通过内置控件正常工作.我想创建一个我的提供程序的新实例并直接调用它,但我真的不想解析MembershipProvider的.config,它的连接字符串名称,然后是连接字符串,如果它已经在某处完成了.



1> JHORN..:

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);


你现在有15个必要点:)

2> tvanfosson..:

不确定为什么要创建一个新的,但如果你自己创建它,你需要阅读web配置并自己获取值以传递给Initialize(),因为这是在课外完成的.不过,我确信本节已经有一个部分处理程序,所以它应该只是做的事情:

MembershipSection section  = WebConfigurationManager.GetSection("membership");

然后找到您的提供程序并访问其属性以构造NameValueCollection.我认为您不必编写任何代码来解析配置部分.

这是MSDN上的MembershipSection文档.从那里钻下来.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有