PDA

View Full Version : سوال: reset password در identity 2.0



r4hgozar
پنج شنبه 14 خرداد 1394, 19:18 عصر
سلام به همه دوستان.
من identity 2.0 sample رو نصب کردم در پروژه ای دیگر و هر جایی رو که نیاز داشتم اومده و استفاده کردم.
مشکلات و bug مختلف داشت که من اون ها رو رفع کردم.
اما یک چیزی هست که نفهمیدم چی کارش کنم. اون هم reset passworde. شما وقتی میای و ایمیل رو میزنی لینک رو برای ایمیل شما می فرسته اما وقتی رو لینک کلیک می کنی بصورت کوئری یک کد و یوزر ایدی برای شما میفرسته و به شما جای وارد کردن ایمیل و یوزر و پسورد رو میده.
شما می تونید جای یوزر مورد نظرتون هر ایمیل و پسورد دیگه ای رو بزنین تا اون رو واستون ست کنه(در صورت وجود اون ایمیل).
در حالی که در سایت های اینطور نیست.

سایت های مختلفی رو دیدم و جستجو کردم اما چیزی پیدا نکردم.
ممنون میشم دوستان راهنمایی کنند.

salar IT man
پنج شنبه 14 خرداد 1394, 22:12 عصر
سلام به همه دوستان.
من identity 2.0 sample رو نصب کردم در پروژه ای دیگر و هر جایی رو که نیاز داشتم اومده و استفاده کردم.
مشکلات و bug مختلف داشت که من اون ها رو رفع کردم.
اما یک چیزی هست که نفهمیدم چی کارش کنم. اون هم reset passworde. شما وقتی میای و ایمیل رو میزنی لینک رو برای ایمیل شما می فرسته اما وقتی رو لینک کلیک می کنی بصورت کوئری یک کد و یوزر ایدی برای شما میفرسته و به شما جای وارد کردن ایمیل و یوزر و پسورد رو میده.
شما می تونید جای یوزر مورد نظرتون هر ایمیل و پسورد دیگه ای رو بزنین تا اون رو واستون ست کنه(در صورت وجود اون ایمیل).
در حالی که در سایت های اینطور نیست.

سایت های مختلفی رو دیدم و جستجو کردم اما چیزی پیدا نکردم.
ممنون میشم دوستان راهنمایی کنند.


دوست من این یک مثال است برای امکاناتی که ارائه داده اند .
اگر به سورس این مثال دقت کنید :


[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> ResetPassword(ResetPasswordViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
var user = await UserManager.FindByNameAsync(model.Email);
if (user == null)
{
// Don't reveal that the user does not exist
return RedirectToAction("ResetPasswordConfirmation", "Account");
}
var result = await UserManager.ResetPasswordAsync(user, model.Code, model.Password);
if (result.Succeeded)
{
return RedirectToAction("ResetPasswordConfirmation", "Account");
}
AddErrors(result);
return View();
}





از کد برای شناسایی اصلی و نهایی استفاده میشه نه از ایمیل! در واقع فقط از ایمیل استفاده میکنه تا یک مرحله شناسایی اولیه داشته باشد.