SimpleMembershipProvider MinRequiredPasswordLength zawsze zwraca 0, mimo że jest zdefiniowany jako 6 w sekcji dostawcy członkostwa Web.config

Przełączyłem się naSimpleMembershipProvider w aplikacji ASP.NET MVC 4. Wszystko inne działa świetnie, ale jest ten problem ...

Kiedy próbuję tego kodu:

var password = Membership.GeneratePassword(Membership.MinRequiredPasswordLength, 0);

MinRequiredPasswordLength jest zawsze 0. Ustawienia zdefiniowane przez dostawcę członkostwaWeb.config sekcja nie jest czytana.

Oto domyślny dostawca członkostwaWeb.config Sekcja:

<membership defaultProvider="AspNetSqlMembershipProvider">
    <providers>
         <clear />
             <add name="AspNetSqlMembershipProvider"
                  type="System.Web.Security.SqlMembershipProvider"
                  connectionStringName="DefaultConnection"
                  enablePasswordRetrieval="false"
                  enablePasswordReset="true"
                  requiresQuestionAndAnswer="false"
                  requiresUniqueEmail="false"
                  maxInvalidPasswordAttempts="5"
                  minRequiredPasswordLength="6"
                  minRequiredNonalphanumericCharacters="0"
                  passwordAttemptWindow="10"
                  applicationName="/Acad" />
    </providers>
</membership>

Oto informacje o debugowaniu, które otrzymuję:

Jakieś wskazówki?

JestSimpleMembershipProvider tak proste, że nawet nie używa sekcji Web.config?

Rozwiązanie na chwilę obecną

Aby pokonaćSimpleMembershipProvider ograniczenie bieżące, użyłemten kod pobrać wartość zdefiniowaną wWeb.config:

MembershipSection membershipSection = (MembershipSection)WebConfigurationManager.GetSection("system.web/membership");
var defaultProvider = membershipSection.DefaultProvider;
ProviderSettings providerSettings = membershipSection.Providers[defaultProvider];
var minRequiredPasswordLength = int.Parse(providerSettings.Parameters["minRequiredPasswordLength"]);

questionAnswers(3)

yourAnswerToTheQuestion