更改成员资格连接字符串

2023-12-19

我是 ASP.NET 成员资格新手,我需要帮助以编程方式更改其连接字符串。

到目前为止我尝试过的是

我创建了一个类项目名称 Sample 作为命名空间** 并扩展了System.Web.Security.SqlMembershipProvider

code as

namespace Sample
{
    public class Connectionstring : SqlMembershipProvider
    {
        public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
        {
            string connectionString = "server=xx.xx.xx;database=db;user id=un;password=pwd";    

           // Set private property of Membership provider.  
           FieldInfo connectionStringField = GetType().BaseType
                     .GetField("_sqlConnectionString", BindingFlags.Instance |
                                                       BindingFlags.NonPublic);
           connectionStringField.SetValue(this, connectionString);
        }
    }
}

并将会员标签中的网络配置文件更改为

<membership defaultProvider="SQLMembershipProvider">
  <providers>
    <add name="SQLMembershipProvider" type="sample.Connectionstring,sample" connectionStringName="SQLMembershipConnString" applicationName="@@@@@@@" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" />
  </providers>
</membership>

在运行 Web 应用程序项目时,我正在更改的连接字符串不会改变吗?

等待您的宝贵回复和意见


我还在网上发现的问题是这样的here http://forums.asp.net/t/997608.aspx:

一个更简单但有点令人惊讶的解决方案就是修改 提供者中的连接字符串在请求中足够早 生命周期:

     private void SetProviderConnectionString(string connectionString)
     {
         var connectionStringField = 
         Membership.Provider.GetType().GetField("_sqlConnectionString", 
                     BindingFlags.Instance | BindingFlags.NonPublic);

         if (connectionStringField != null)
             connectionStringField.SetValue(Membership.Provider, connectionString);
     }

从Global.asax.cs里面调用这个方法 Application_PreRequestHandlerExecute 完成这项工作。没有测试过 太多了,但即使有些东西不起作用,也仅仅意味着它需要 应该早点做。不保证这适用于未来版本 框架的一部分,尽管很可能会。

因此,可以手动调用“SetProviderConnectionString”方法(在Initialize方法完成之后),而不是期望框架在第一次引用Membership.Provider时调用覆盖的Initialize方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改成员资格连接字符串 的相关文章

随机推荐