当前位置: 首页 > 编程语言 > C#

从代码共享动态设置成员资格的连接字符串

时间:2023-04-11 12:06:46 C#

从代码动态设置成员资格的连接字符串我有一个使用成员资格进行用户身份验证的.netWeb应用程序。成员资格在web.config文件中有一个定义并引用文件(web.config)中的连接字符串,我需要在web.config中为非静态代码的成员资格动态设置连接字符串。我怎样才能做到这一点?提前致谢。以下C#示例代码演示了如何以编程方式配置.NET成员身份提供程序(作者JacquesL.Chereau)。此代码要求您还配置一个名为MyDatabaseNameValueCollectionobjConfig=newNameValueCollection();的连接字符串。objConfig.Add("connectionStringName","MyDatabase");objConfig.Add("enablePasswordRetrieval","false");objConfig.Add("enablePasswordReset","true");objConfig.Add("requiresQuestionAndAnswer","true");objConfig.Add("applicationName","MyApp");objConfig.Add("requiresUniqueEmail","true");objConfig.Add("maxInvalidPasswordAttempts","5");objConfig.Add("passwordAttemptWindow","10");objConfig.Add("commandTimeout","30");objConfig.Add("passwordFormat","Hashed");objConfig.Add("名称","AspNetSqlMembershipProvider");objConfig.Add("minRequiredPasswordLength","8");objConfig.Add("minRequiredNonalphanumericCharacters","2");objConfig.Add("passwordStrengthRegularExpression","(?=^.{8,25}$)(?=.*\d)(?=.*[az])(?=.*[AZ])(?=.*[!@#$%^&*()_+}{\":;'?/>。假设您有以下库引用:usingSystem.Web.Security;usingSystem.Collections.Specialized;usingSystem.反射;编辑:此方法在请求的生命周期早期设置成员资格提供程序中的连接字符串privatevoidSetMembershipProviderConnectionString(stringconnectionString){//设置成员资格的私有属性。未经测试的代码!varconnectionStringField=Membership.Provider.GetType()。GetField("_sqlConnectionString",BindingFlags.Instance|BindingFlags.NonPublic);如果(connectionStringField!=null)connectionStringField.SetValue(Membership.Provider,connectionString);未经测试但在Application_PreRequestHandlerExecute中从Global.asax.cs调用此方法有一个更简单的解决方案可以完成这项工作。以上就是C#学习教程:从代码到动态设置成员资格连接字符串分享的全部内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注---创建SqlMembershipProvider类的扩展子类。覆盖Initialize方法设置connectionString属性config["connectionString"]让base.Initialize逻辑继续在web.config文件中,使用您的自定义类而不是SqlMembershipProvider。(如果给它起不同的名字,一定要设置defaultProvider属性来匹配它)本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: