SimpleMembershipProvider
ASP.NET MVC 4 アプリに切り替えました。他のすべてはうまく機能していますが、この問題があります...
このコードを試すと:
var password = Membership.GeneratePassword(Membership.MinRequiredPasswordLength, 0);
MinRequiredPasswordLength
は常に 0 です。メンバーシップ プロバイダーのWeb.config
セクションで定義された設定は読み取られません。
メンバーシップの既定のプロバイダーWeb.config
セクションは次のとおりです。
<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>
取得したデバッグ情報は次のとおりです。
ヒントはありますか?
SimpleMembershipProvider
Web.config セクションさえ使用しないほど単純ですか?
とりあえずの解決
SimpleMembershipProvider
現在の制限を克服するために、次のコードを使用して で定義された値を取得しましたWeb.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"]);