Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在从web.config读取成员资格部分_C#_Model View Controller_Membership_Web Config - Fatal编程技术网

C# 正在从web.config读取成员资格部分

C# 正在从web.config读取成员资格部分,c#,model-view-controller,membership,web-config,C#,Model View Controller,Membership,Web Config,我已经创建了一个自定义MembershipProvider类,到目前为止还不错,但是,我不知道如何从web.config文件中读取配置设置 我试图从谷歌和Stackoverflow搜索,似乎有人也在体验我的工作 问题被问了又问,但没有给出答案 这应该是一件简单的事情,但我对web开发非常陌生,所以从web.config读取设置对我来说太技术化了 以下是我的设置: <membership defaultProvider="CustomMembershipProvider"> &l

我已经创建了一个自定义MembershipProvider类,到目前为止还不错,但是,我不知道如何从web.config文件中读取配置设置

我试图从谷歌和Stackoverflow搜索,似乎有人也在体验我的工作 问题被问了又问,但没有给出答案

这应该是一件简单的事情,但我对web开发非常陌生,所以从web.config读取设置对我来说太技术化了

以下是我的设置:

 <membership defaultProvider="CustomMembershipProvider">
  <providers>
    <clear/>
    <add name="CustomMembershipProvider"
         type="Test.Models.CustomMembershipProvider,Test"
         passwordFormat="Hashed"
         connectionStringName="ApplicationServices"
         minRequiredPasswordLength="8"
         minRequiredNonalphanumericCharacters="0"
         maxInvalidPasswordAttempts="5"
         enablePasswordReset="false"
         enablePasswordRetrieval="false"
         requiresQuestionAndAnswer="false"
         applicationName="/"/>
  </providers>
</membership>


我想阅读
minRequiredPasswordLength
设置,请协助。

由于这是您的默认提供程序,因此应该足以:

int i = Membership.MinRequiredPasswordLength;

这将返回一个int,指定所需的最小密码长度。

以下是代码中的解决方案:

        MembershipSection membershipSection = (MembershipSection)WebConfigurationManager.GetSection("system.web/membership");
        string defaultProvider = membershipSection.DefaultProvider;
        ProviderSettings providerSettings = membershipSection.Providers[defaultProvider];
        string connectionStringName = providerSettings.Parameters["connectionStringName"];
        string connectionUsername = providerSettings.Parameters["connectionUsername"];
        string connectionPassword = providerSettings.Parameters["connectionPassword"];
        string connectionString = WebConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;

如果您已经在自己的类中重写了
System.Web.Security.MembershipProvider
,您可以按照Robban的建议,通过调用
System.Web.Security.membership
方法获得Web.config成员资格设置。但是,这些调用将被定向到您的成员资格提供程序类,因此您需要提供一些实现

假设您已经覆盖了
MembershipProvider
类,并在配置文件中添加了一个部分,如上面的原始问题所示。对int
i=Membership.MinRequiredPasswordLength
的调用将定向到您的实现。这可能是这样的:

   public override int MinRequiredPasswordLength
    {
        get { return _minRequiredPasswordLength; }
    }

MSDN给出了一个完整的例子。该示例向您展示了如何读取配置文件以设置本地属性,如
\u minRequiredPasswordLength

+1谢谢,我一直在寻找从配置加载默认提供程序的方法。很抱歉添加到这个部分,但是
PasswordFormat
部分如何?