Я создал тестовое приложение 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?