ASP.NET WebForms с идентификацией - PullRequest
0 голосов
/ 27 декабря 2018

Я создал тестовое приложение Web Forms 4.5.2.Это вопрос из двух частей.

(1) Я вижу, что установлен Microsoft.AspNet.Identity.Core.Совместима ли эта версия с веб-формами или только с приложениями ASP.NET Core?

(2) При попытке заставить работать форму сброса пароля у меня появилось бесполезное общее сообщение об ошибке, поэтому я отладил следующееКод "из коробки":

protected void Reset_Click(object sender, EventArgs e)
{
    string code = IdentityHelper.GetCodeFromRequest(Request);
    if (code != null)
    {
        var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();

        var user = manager.FindByName(Email.Text);
        if (user == null)
        {
            ErrorMessage.Text = "No user found";
            return;
        }
        var result = manager.ResetPassword(user.Id, code, Password.Text);
        if (result.Succeeded)
        {
            Response.Redirect("~/Account/ResetPasswordConfirmation");
            return;
        }
            ErrorMessage.Text = result.Errors.FirstOrDefault();
            return;
        }

        ErrorMessage.Text = "An error has occurred";
        return;
    }
}

IdentityHelper.GetCodeFromRequest (Запрос) возвращает значение NULL.В классе IdentityModels.cs я вижу следующее:

public const string CodeKey = "code";
public static string GetCodeFromRequest(HttpRequest request)
{
    return request.QueryString[CodeKey];
}

Я бы ожидал, что это будет работать из коробки?Поскольку не сгенерирован параметр запроса, я должен предположить, что мы должны кодировать это сами?Параметр запроса CodeKey вообще нужен здесь или есть другой способ получить токен, ожидаемый методом ResetPassword?

1 Ответ

0 голосов
/ 27 декабря 2018
  1. да, он совместим.

  2. "код" генерируется в Forgot.aspx.cs:

    string code = manager.GeneratePasswordResetToken(user.Id);
    //(out of the box its commented out)
    

    и отправляется черезэлектронную почту без кода, все смогут сбросить.

...