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"]);