В этом случае вам необходимо внести некоторые изменения в ваш файл Web.config.Найдите следующий раздел и измените его соответствующим образом
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
ОБНОВЛЕНО
Сначала обновите раздел конфигурации членства в файле web.config, как показано ниже
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
Затем в контроллере учетной записи замените действие регистрации (действие, отмеченное [HttpPost]
) следующим кодом
[HttpPost]
public ActionResult Register(RegisterModel model)
{
Membership.ValidatingPassword += new MembershipValidatePasswordEventHandler(OnValidatePassword);
if (ModelState.IsValid)
{
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", ErrorCodeToString(createStatus));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
и, наконец, добавьте код OnValidatePassword под действием регистрации
public void OnValidatePassword(object sender,
ValidatePasswordEventArgs args)
{
System.Text.RegularExpressions.Regex r =
new System.Text.RegularExpressions.Regex(@"(?=.{8,})(?=(.*\d){1,})(?=(.*\W){1,})");
if (!r.IsMatch(args.Password))
{
args.FailureInformation =
new HttpException("Password must be at least 8 characters long and " +
"contain at least one number and one special character.");
args.Cancel = true;
}
}
Надеюсь, это поможет вам достичь того, чего вы хотите !!