我希望能有效地回答这个问题。我应该如何将web.config中为asp.net成员资格提供的设置移动到数据库中以进行跨应用程序自定义。例如,会员信息包括以下内容
<providers>
<add
name="OdbcProvider"
type="Samples.AspNet.Membership.OdbcMembershipProvider"
connectionStringName="OdbcServices"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
writeExceptionsToEventLog="true" />
</providers>
</membership>
.NET 2.0
ASP.NET 2.0
moving asp.net membership specific settings to a separate config file
答案 0 :(得分:4)
是的,你可以!我们已成功完成此任务。
您可以通过几种方式实现,一种方法是将您需要的任何属性注入提供程序的实例(此示例假定您使用SqlMembershipProvider
并显示如何注入连接字符串,但是您可以看看OdbcMembershipProvider
的来源,以了解自己在哪里做到这一点:
public static void InjectConnectionStringIntoSqlMembershipProvider(SqlMembershipProvider provider, string connectionString) {
Type t = typeof(SqlMembershipProvider);
FieldInfo fi = t.GetField("_sqlConnectionString", BindingFlags.NonPublic | BindingFlags.Instance);
if (fi == null) throw new InvalidOperationException("Invalid private identifier.");
fi.SetValue(provider, connectionString);
}
或者,您可以通过创建继承MembershipProvider
。
或者,正如@Andomar建议的链接所示,您可以继承MembershipProvider
的任何实现(例如SqlMembershipProvider
等),以获得您想要的内容。
多年来,我们已经完成了这三项工作,具体取决于需要多少定制。