хэшируйте пароль и сохраняйте в новой БД, так как старый исключен - PullRequest
0 голосов
/ 18 февраля 2012
public ActionResult Register(RegisterModel model)
        {
            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);
        }

Эта функция регистрации вызывается после того, как я заполняю регистрационную форму, но я только что заменил базу данных mdf по умолчанию на вновь созданную базу данных sdf, я также хотел бы использовать md5 для хеширования пароля участника. Куда мне добавить такую ​​функцию в приведенном выше источнике?

[UPDATE]

1 Ответ

1 голос
/ 18 февраля 2012

Похоже, вы используете API членства ASP.Net для этого.Зная это, я постараюсь сохранить код, который вы используете против этого API, точным для цели API.Я бы не стал хэшировать пароль до его передачи в API.Я бы хэшировал его в MembershipProvider перед сохранением пароля;и я бы хэшировал это перед любой процедурой проверки пароля.Это позволит сохранить детали реализации хеширования вашего пароля за пределами кода вашего приложения, и кто знает только то, как взаимодействовать с ASP.Net Membership API.

Итак, вы должны посмотреть, как работает ваш MembershipProviderсконфигурировано.Я не уверен, что SQL MembershipProvider по умолчанию способен делать это автоматически, но если это так, это было бы замечательно.В противном случае вы можете переопределить SQL MembershipProvider своей собственной реализацией.

Консультировать в качестве отправной точки [1], которая описывает класс SqlMembershipProvider.

[1] http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...