移动asp.net成员网络.这是可能的吗?

本文关键字:asp net 成员 网络 移动 | 更新日期: 2023-09-27 18:15:51

我希望这个问题有一个富有成效的答案。我该如何移动web中提供的设置。配置用于跨应用程序自定义的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

将asp.net成员特定设置移动到单独的配置文件

移动asp.net成员网络.这是可能的吗?

是的,你可以!我们已经成功地做到了。

您可以通过几种方式来实现,其中一种是将所需的属性注入到提供程序的实例中(本示例假设您正在使用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等),以获得您想要的。

根据需要的定制程度,我们多年来都做过这三次。