在Web.Config中以编程方式更改成员资格提供程序的属性

时间:2011-01-26 19:49:17

标签: c# asp.net web-config membership-provider

我的web.config

中有以下defaultmembership提供程序
<add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Another Type" passwordFormat="Hashed" />

我正在尝试以编程方式将 enablePasswordReset false 更新为 true ,但我正在努力..这就是我的目标!< / p>

ConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
var section = (MembershipSection)config.GetSection("system.web/membership");

var defaultProvider = section.DefaultProvider;
var providerSettings = section.Providers[defaultProvider];

// Now what?

现在我无法弄清楚如何获取属性并更新它?任何提示/例子都非常感谢。

2 个答案:

答案 0 :(得分:4)

我想通了

        var config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
        var section = (MembershipSection)config.GetSection("system.web/membership");

        var defaultProvider = section.DefaultProvider;
        var providerSettings = section.Providers[defaultProvider];
        providerSettings.Parameters.Set("enablePasswordReset", "true");
        config.Save();

答案 1 :(得分:0)

我建议您创建自定义成员资格提供程序并使用其他来源进行设置。更改设置可能很危险;我认为这是一个用户曝光的功能,允许管理员打开或关闭它?

如果您可以创建自定义成员资格提供程序,从数据库或XML文件中提取信息,然后允许该功能。不确定放置此代码的确切位置,取决于您是使用ASP.NET控件,还是使用API​​自定义...

HTH。