Új hozzászólás Aktív témák
-
joysefke
veterán
.NET Core 2.1, ASP.NET Core 2.1 IPasswordValidator
Amikor kreálok egy usert, akkor a beállított password policy szépen alapján a kért jelszó erőssége szépen validálásra kerül,
azonban amikor meg akarom változtatni a beállított jelszót és a kért új jelszó erősségének validálásához a beépített default
IPasswordValidatorból (amit bár nem konfiguráltam DI-re, mégis valahogy működik a[FromServices]) kérek egy példányt és azzal próbálok validálni, akkor a validálás nem működik, bármilyen jelszó elfogadásra kerül.Startup.cs
services.AddIdentity<AppUser, IdentityRole>(
opts => {
opts.User.RequireUniqueEmail = true;
opts.Password.RequiredLength = 3;
opts.Password.RequireNonAlphanumeric = false;
opts.Password.RequireLowercase = false;
opts.Password.RequireUppercase = false;
opts.Password.RequireDigit = false;
})Kontroller
Usert így kreálom:AppUser newUser = new AppUser { UserName = model.Name, Email = model.Email };
IdentityResult result = await userManager.CreateAsync(newUser, model.Password);
if (result.Succeeded)
{
// safe to assume that the below operation will succeede
await userManager.AddToRoleAsync(newUser, "Admins");
return RedirectToAction(nameof(AdminUsers));
}És így szeretném megváltoztatni a passwordot:
Fügvény deklaráció, DI. Érdekes, hogy a Startup-ban én semmit nem rendeltem az IPasswordValidator-hoz
public async Task<IActionResult> Edit2(
[FromServices]IPasswordValidator<AppUser> passwordValidator,
[FromServices]IPasswordHasher<AppUser> passwordHasher,
EditModel model, string newPwd).....
Itt szeretném a jelszó erősségét validálni és ha megfelel megjelölöm, hogy updatelni akarom
IdentityResult passwordResult = await passwordValidator.ValidateAsync(userManager, userToEdit, model.Password);
if (!passwordResult.Succeeded)
foreach (var error in passwordResult.Errors)
ModelState.AddModelError("", error.Description);
else
passwordNeedsChange = true;Itt hajtom végre az IdentityUser updétjét:
if (ModelState.IsValid)
{
if (emailNeedsChange)
userToEdit.Email = model.Email;
if (passwordNeedsChange)
userToEdit.PasswordHash = passwordHasher.HashPassword(userToEdit, model.NewPassword);
var updateResult = await userManager.UpdateAsync(userToEdit);
....
}Előre is köszi!
#8679 Köszi!
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Victus fb3804no 15.6" FHD IPS Ryzen 5 8645HS RTX 4050 16GB 512GB NVMe gar
- MacSzerez.com - 2020 MacBook Air 13" Retina M1 / 16GB RAM / 256GB SSD / Asztroszürke / Garancia
- Kingston FURY 32GB DDR5 5600MHz CL40 - Beast Black - 1x32GB
- 16 GB DDR5 5600 Mhz Samsung RAM !
- Lenovo ThinkPad E15 G3 20YG00A1HV Notebook
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- Telefon felvásárlás!! Samsung Galaxy A12/Samsung Galaxy A22/Samsung Galaxy A32/Samsung Galaxy A52
- GYÖNYÖRŰ APPLE WATCH ULTRA 2 NATURAL TITANIUM 49MM -1 ÉV GARANCIA - MS3715, 98% AKKUMULÁTOR
- ÁRCSÖKKENTÉS Menő retró konfig: Q9550, Gigabyte P43, 4GB RAM, ASUS GT730
- GYÖNYÖRŰ iPhone 14 128GB Red -1 ÉV GARANCIA -Kártyafüggetlen, MS3678, 100% Akkumulátor
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

