Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
ASP.NET Core Identity gebruikt standaardwaarden voor instellingen zoals wachtwoordbeleid, vergrendeling en cookie configuratie. Deze instellingen kunnen worden overschreven bij het opstarten van de applicatie.
Identity Opties
De IdentityOptions klasse vertegenwoordigt de opties die kunnen worden gebruikt om het Identity systeem te configureren. IdentityOptions moet worden ingesteld na het aanroepen van AddIdentity of AddDefaultIdentity.
Aanspraken Identity
IdentityOptions.ClaimsIdentity specificeert de ClaimsIdentityOptions met de eigenschappen die in de volgende tabel worden weergegeven.
| Vastgoed | Description | Verstek |
|---|---|---|
| RoleClaimType | Hiermee haalt u het claimtype op dat wordt gebruikt voor een rolclaim of stelt u dit in. | ClaimTypes.Role |
| SecurityStampClaimType | Hiermee haalt u het claimtype op of stelt u het in dat wordt gebruikt voor de claim van het beveiligingsstempel. | AspNet.Identity.SecurityStamp |
| UserIdClaimType | Haalt of stelt het claimtype in dat wordt gebruikt voor de gebruikers-id-claim. | ClaimTypes.NameIdentifier |
| UserNameClaimType | Hiermee haalt u het claimtype op of stelt u het in dat wordt gebruikt voor de claim voor de gebruikersnaam. | ClaimTypes.Name |
Uitsluiting
Vergrendeling is ingesteld in de methode PasswordSignInAsync :
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl ??= Url.Content("~/");
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
if (ModelState.IsValid)
{
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, set lockoutOnFailure: true
var result = await _signInManager.PasswordSignInAsync(Input.Email,
Input.Password, Input.RememberMe,
lockoutOnFailure: false);
if (result.Succeeded)
{
_logger.LogInformation("User logged in.");
return LocalRedirect(returnUrl);
}
if (result.RequiresTwoFactor)
{
return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });
}
if (result.IsLockedOut)
{
_logger.LogWarning("User account locked out.");
return RedirectToPage("./Lockout");
}
else
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return Page();
}
}
// If we got this far, something failed, redisplay form
return Page();
}
De voorgaande code is gebaseerd op de LoginIdentity sjabloon.
Vergrendelingsopties zijn ingesteld in Program.cs:
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using RPauth.Data;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
builder.Services.AddDefaultIdentity<IdentityUser>(options =>
options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
builder.Services.AddRazorPages();
builder.Services.Configure<IdentityOptions>(options =>
{
// Default Lockout settings.
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
options.Lockout.AllowedForNewUsers = true;
});
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseMigrationsEndPoint();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
De voorgaande code stelt de IdentityOptionsLockoutOptions standaardwaarden in.
Een geslaagde verificatie stelt het aantal mislukte toegangspogingen opnieuw in en stelt de klok opnieuw in.
IdentityOptions.Lockout specificeert de LockoutOptions, met de eigenschappen zoals weergegeven in de tabel.
| Vastgoed | Description | Verstek |
|---|---|---|
| AllowedForNewUsers | Bepaalt of een nieuwe gebruiker kan worden vergrendeld. | true |
| DefaultLockoutTimeSpan | De hoeveelheid tijd dat een gebruiker wordt vergrendeld wanneer er een vergrendeling plaatsvindt. | 5 minuten |
| MaxFailedAccessAttempts | Het aantal mislukte toegangspogingen totdat een gebruiker is vergrendeld, als vergrendeling is ingeschakeld. | 5 |
Wachtwoord
Identity Standaard moeten wachtwoorden een hoofdletter, kleine letters, een cijfer en een niet-alfanumeriek teken bevatten. Wachtwoorden moeten ten minste zes tekens lang zijn.
Wachtwoorden worden geconfigureerd met:
-
PasswordOptions in
Program.cs. -
[StringLength]kenmerken vanPasswordeigenschappen als Identity deze in de app worden ingevoegd.InputModelPasswordde eigenschappen zijn te vinden in de volgende bestanden:Areas/Identity/Pages/Account/Register.cshtml.csAreas/Identity/Pages/Account/ResetPassword.cshtml.cs
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using RPauth.Data;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
builder.Services.AddDefaultIdentity<IdentityUser>(options =>
options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
builder.Services.AddRazorPages();
builder.Services.Configure<IdentityOptions>(options =>
{
// Default Password settings.
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireNonAlphanumeric = true;
options.Password.RequireUppercase = true;
options.Password.RequiredLength = 6;
options.Password.RequiredUniqueChars = 1;
});
var app = builder.Build();
// Remaining code removed for brevity.
IdentityOptions.Password specificeert de PasswordOptions, met de eigenschappen zoals weergegeven in de tabel.
| Vastgoed | Description | Verstek |
|---|---|---|
| RequireDigit | Vereist een getal tussen 0 en 9 in het wachtwoord. | true |
| RequiredLength | De minimale lengte van het wachtwoord. | 6 |
| RequireLowercase | Vereist een kleine letter in het wachtwoord. | true |
| RequireNonAlphanumeric | Vereist een niet-alfanumerieke teken in het wachtwoord. | true |
| RequiredUniqueChars | Alleen van toepassing op ASP.NET Core 2.0 of hoger. Vereist het aantal afzonderlijke tekens in het wachtwoord. |
1 |
| RequireUppercase | Vereist een hoofdletter in het wachtwoord. | true |
Aanmelden
Met de volgende code worden de instellingen SignIn op de standaardwaarden ingesteld.
builder.Services.Configure<IdentityOptions>(options =>
{
// Default SignIn settings.
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
});
IdentityOptions.SignIn specificeert de SignInOptions, met de eigenschappen zoals weergegeven in de tabel.
| Vastgoed | Description | Verstek |
|---|---|---|
| RequireConfirmedEmail | Hiervoor is een bevestigd e-mailbericht vereist om u aan te melden. | false |
| RequireConfirmedPhoneNumber | Hiervoor is een bevestigd telefoonnummer vereist om u aan te melden. | false |
Tokens
IdentityOptions.Tokens specificeert de TokenOptions, met de eigenschappen zoals weergegeven in de tabel.
| Vastgoed | Description |
|---|---|
| AuthenticatorTokenProvider | Hiermee haalt u de AuthenticatorTokenProvider op of stelt u deze in die wordt gebruikt voor het valideren van twee-factor authenticatie met een authenticator. |
| ChangeEmailTokenProvider | Hiermee haalt u het ChangeEmailTokenProvider op of stelt u het in dat wordt gebruikt voor het genereren van tokens die worden gebruikt in e-mailwijzigingsbevestigingsmails. |
| ChangePhoneNumberTokenProvider | Stelt het ChangePhoneNumberTokenProvider in of haalt het op, gebruikt om tokens te genereren die worden gebruikt bij het wijzigen van telefoonnummers. |
| EmailConfirmationTokenProvider | Hiermee haalt u de tokenprovider op of stelt deze in, die wordt gebruikt om tokens te genereren voor gebruik in bevestigingsmails van het account. |
| PasswordResetTokenProvider | Stelt het IUserTwoFactorTokenProvider<TUser> in of verkrijgt het, dat wordt gebruikt om tokens te genereren die in e-mailberichten voor wachtwoordherstel worden gebruikt. |
| ProviderMap | Wordt gebruikt om een User Token Provider samen te stellen waarbij de sleutel dient als de naam van de provider. |
User
builder.Services.Configure<IdentityOptions>(options =>
{
// Default User settings.
options.User.AllowedUserNameCharacters =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = false;
});
IdentityOptions.User specificeert de UserOptions, met de eigenschappen zoals weergegeven in de tabel.
| Vastgoed | Description | Verstek |
|---|---|---|
| AllowedUserNameCharacters | Toegestane tekens in de gebruikersnaam. | abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 -._@+ |
| RequireUniqueEmail | Vereist dat elke gebruiker een uniek e-mailbericht heeft. | false |
instellingen voor Cookie
Configureer de app cookie in Program.cs.
ConfigureApplicationCookie moet worden aangeroepen na het aanroepen AddIdentity of AddDefaultIdentity.
builder.Services.ConfigureApplicationCookie(options =>
{
options.AccessDeniedPath = "/Identity/Account/AccessDenied";
options.Cookie.Name = "YourAppCookieName";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
options.LoginPath = "/Identity/Account/Login";
// ReturnUrlParameter requires
//using Microsoft.AspNetCore.Authentication.Cookies;
options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
options.SlidingExpiration = true;
});
Zie CookieAuthenticationOptions voor meer informatie.
Opties voor wachtwoord-hasher
PasswordHasherOptions haalt opties voor wachtwoordhashing op en stelt deze in.
| Optie | Description |
|---|---|
| CompatibilityMode | De compatibiliteitsmodus die wordt gebruikt bij het hashen van nieuwe wachtwoorden. Standaardwaarde is IdentityV3. De eerste byte van een gehasht wachtwoord, een zogenaamde opmaakmarkering, geeft de versie van het hashing-algoritme op dat wordt gebruikt om het wachtwoord te hashen. Wanneer u een wachtwoord verifieert op basis van een hash, selecteert de VerifyHashedPassword methode het juiste algoritme op basis van de eerste byte. Een client kan verifiëren, ongeacht welke versie van het algoritme is gebruikt om het wachtwoord te hashen. Het instellen van de compatibiliteitsmodus is van invloed op de hashing van nieuwe wachtwoorden. |
| IterationCount | Het aantal iteraties dat wordt gebruikt bij het hashen van wachtwoorden met PBKDF2. Deze waarde wordt alleen gebruikt wanneer de CompatibilityMode waarde is ingesteld op IdentityV3. De waarde moet een positief geheel getal zijn en de standaardwaarde 100000is . |
In het volgende voorbeeld is het IterationCount ingesteld op 12000 in Program.cs:
// using Microsoft.AspNetCore.Identity;
builder.Services.Configure<PasswordHasherOptions>(option =>
{
option.IterationCount = 12000;
});
Globaal vereisen dat alle gebruikers worden geverifieerd
Zie Geverifieerde gebruikers vereisenvoor informatie over het globaal vereisen van verificatie van alle gebruikers.
ISecurityStampValidator en SignOut op alle locaties
Apps moeten reageren op gebeurtenissen met betrekking tot beveiligingsgevoelige acties door de gebruikers ClaimsPrincipalopnieuw te genereren. De ClaimsPrincipal moet bijvoorbeeld opnieuw worden gegenereerd bij het aansluiten van een rol, het wijzigen van het wachtwoord, of andere beveiligingsgevoelige gebeurtenissen.
Identity maakt gebruik van de ISecurityStampValidator interface om de ClaimsPrincipal te regenereren. De standaardimplementatie van Identity registreert een SecurityStampValidator met de hoofdtoepassing cookie en de tweeledige cookie. De validator haakt in op de OnValidatePrincipal gebeurtenis van elke cookie om Identity aan te roepen om te verifiëren dat de beveiligingsstempelclaim van de gebruiker onveranderd is gebleven ten opzichte van wat is opgeslagen in de cookie. De validator wordt regelmatig aangeroepen. Het oproepinterval is een compromis tussen het te vaak aanspreken van de datastore en niet vaak genoeg. Controleren met een lang interval resulteert in verouderde claims. Oproep userManager.UpdateSecurityStampAsync(user)om bestaande cookies te dwingen ongeldig te worden wanneer ze de volgende keer worden gecontroleerd. De meeste UI-account- en beheerpagina's roepen Identity aan na het wijzigen van het wachtwoord of het toevoegen van een userManager.UpdateSecurityStampAsync(user) login. Apps kunnen aanroepen userManager.UpdateSecurityStampAsync(user) om een afmelding overal te implementeren.
Het wijzigen van het validatie-interval wordt weergegeven in de volgende gemarkeerde code:
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using WebClaimsPrincipal.Data;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection")
?? throw new InvalidOperationException("'DefaultConnection' not found.");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
builder.Services.AddDefaultIdentity<IdentityUser>(options =>
options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
// Force Identity's security stamp to be validated every minute.
builder.Services.Configure<SecurityStampValidatorOptions>(o =>
o.ValidationInterval = TimeSpan.FromMinutes(1));
builder.Services.AddRazorPages();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseMigrationsEndPoint();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
ASP.NET Core Identity gebruikt standaardwaarden voor instellingen zoals wachtwoordbeleid, vergrendeling en cookie configuratie. Deze instellingen kunnen in de Startup class worden overschreven.
Identity Opties
De IdentityOptions klasse vertegenwoordigt de opties die kunnen worden gebruikt om het Identity systeem te configureren.
IdentityOptions moet worden ingesteld na het aanroepen van AddIdentity of AddDefaultIdentity.
Aanspraken Identity
IdentityOptions.ClaimsIdentity specificeert de ClaimsIdentityOptions met de eigenschappen die in de volgende tabel worden weergegeven.
| Vastgoed | Description | Verstek |
|---|---|---|
| RoleClaimType | Hiermee haalt u het claimtype op dat wordt gebruikt voor een rolclaim of stelt u dit in. | ClaimTypes.Role |
| SecurityStampClaimType | Hiermee haalt u het claimtype op of stelt u het in dat wordt gebruikt voor de claim van het beveiligingsstempel. | AspNet.Identity.SecurityStamp |
| UserIdClaimType | Haalt of stelt het claimtype in dat wordt gebruikt voor de gebruikers-id-claim. | ClaimTypes.NameIdentifier |
| UserNameClaimType | Hiermee haalt u het claimtype op of stelt u het in dat wordt gebruikt voor de claim voor de gebruikersnaam. | ClaimTypes.Name |
Uitsluiting
Vergrendeling is ingesteld in de methode PasswordSignInAsync :
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl = returnUrl ?? Url.Content("~/");
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(Input.Email,
Input.Password, Input.RememberMe,
lockoutOnFailure: false);
if (result.Succeeded)
{
_logger.LogInformation("User logged in.");
return LocalRedirect(returnUrl);
}
if (result.RequiresTwoFactor)
{
return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl,
Input.RememberMe });
}
if (result.IsLockedOut)
{
_logger.LogWarning("User account locked out.");
return RedirectToPage("./Lockout");
}
else
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return Page();
}
}
// If we got this far, something failed, redisplay form
return Page();
}
De voorgaande code is gebaseerd op de LoginIdentity sjabloon.
Vergrendelingsopties zijn ingesteld in StartUp.ConfigureServices:
services.Configure<IdentityOptions>(options =>
{
// Default Lockout settings.
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
options.Lockout.AllowedForNewUsers = true;
});
De voorgaande code stelt de IdentityOptionsLockoutOptions standaardwaarden in.
Een geslaagde verificatie stelt het aantal mislukte toegangspogingen opnieuw in en stelt de klok opnieuw in.
IdentityOptions.Lockout specificeert de LockoutOptions met de eigenschappen zoals weergegeven in de tabel.
| Vastgoed | Description | Verstek |
|---|---|---|
| AllowedForNewUsers | Bepaalt of een nieuwe gebruiker kan worden vergrendeld. | true |
| DefaultLockoutTimeSpan | De hoeveelheid tijd dat een gebruiker wordt vergrendeld wanneer er een vergrendeling plaatsvindt. | 5 minuten |
| MaxFailedAccessAttempts | Het aantal mislukte toegangspogingen totdat een gebruiker is vergrendeld, als vergrendeling is ingeschakeld. | 5 |
Wachtwoord
Identity Standaard moeten wachtwoorden een hoofdletter, kleine letters, een cijfer en een niet-alfanumeriek teken bevatten. Wachtwoorden moeten ten minste zes tekens lang zijn.
Wachtwoorden worden geconfigureerd met:
-
PasswordOptions in
Startup.ConfigureServices. -
[StringLength]kenmerken vanPasswordeigenschappen als Identity deze in de app worden ingevoegd.InputModelPasswordde eigenschappen zijn te vinden in de volgende bestanden:Areas/Identity/Pages/Account/Register.cshtml.csAreas/Identity/Pages/Account/ResetPassword.cshtml.cs
services.Configure<IdentityOptions>(options =>
{
// Default Password settings.
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireNonAlphanumeric = true;
options.Password.RequireUppercase = true;
options.Password.RequiredLength = 6;
options.Password.RequiredUniqueChars = 1;
});
IdentityOptions.Password geeft de PasswordOptions met de eigenschappen die in de tabel worden weergegeven.
| Vastgoed | Description | Verstek |
|---|---|---|
| RequireDigit | Vereist een getal tussen 0 en 9 in het wachtwoord. | true |
| RequiredLength | De minimale lengte van het wachtwoord. | 6 |
| RequireLowercase | Vereist een kleine letter in het wachtwoord. | true |
| RequireNonAlphanumeric | Vereist een niet-alfanumerieke teken in het wachtwoord. | true |
| RequiredUniqueChars | Alleen van toepassing op ASP.NET Core 2.0 of hoger. Vereist het aantal afzonderlijke tekens in het wachtwoord. |
1 |
| RequireUppercase | Vereist een hoofdletter in het wachtwoord. | true |
Aanmelden
Met de volgende code worden de instellingen SignIn op de standaardwaarden ingesteld.
services.Configure<IdentityOptions>(options =>
{
// Default SignIn settings.
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
});
IdentityOptions.SignIn specificeert de SignInOptions met de eigenschappen die in de tabel zijn weergegeven.
| Vastgoed | Description | Verstek |
|---|---|---|
| RequireConfirmedEmail | Hiervoor is een bevestigd e-mailbericht vereist om u aan te melden. | false |
| RequireConfirmedPhoneNumber | Hiervoor is een bevestigd telefoonnummer vereist om u aan te melden. | false |
Tokens
IdentityOptions.Tokens bepaalt de TokenOptions met de eigenschappen die in de tabel worden weergegeven.
| Vastgoed | Description |
|---|---|
| AuthenticatorTokenProvider | Hiermee haalt u de AuthenticatorTokenProvider op of stelt u deze in die wordt gebruikt voor het valideren van twee-factor authenticatie met een authenticator. |
| ChangeEmailTokenProvider | Hiermee haalt u het ChangeEmailTokenProvider op of stelt u het in dat wordt gebruikt voor het genereren van tokens die worden gebruikt in e-mailwijzigingsbevestigingsmails. |
| ChangePhoneNumberTokenProvider | Stelt het ChangePhoneNumberTokenProvider in of haalt het op, gebruikt om tokens te genereren die worden gebruikt bij het wijzigen van telefoonnummers. |
| EmailConfirmationTokenProvider | Hiermee haalt u de tokenprovider op of stelt deze in, die wordt gebruikt om tokens te genereren voor gebruik in bevestigingsmails van het account. |
| PasswordResetTokenProvider | Stelt het IUserTwoFactorTokenProvider<TUser> in of verkrijgt het, dat wordt gebruikt om tokens te genereren die in e-mailberichten voor wachtwoordherstel worden gebruikt. |
| ProviderMap | Wordt gebruikt om een User Token Provider samen te stellen waarbij de sleutel dient als de naam van de provider. |
User
services.Configure<IdentityOptions>(options =>
{
// Default User settings.
options.User.AllowedUserNameCharacters =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = false;
});
IdentityOptions.User specificeert de UserOptions, met de eigenschappen zoals weergegeven in de tabel.
| Vastgoed | Description | Verstek |
|---|---|---|
| AllowedUserNameCharacters | Toegestane tekens in de gebruikersnaam. | abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 -._@+ |
| RequireUniqueEmail | Vereist dat elke gebruiker een uniek e-mailbericht heeft. | false |
instellingen voor Cookie
Configureer de app cookie in Startup.ConfigureServices.
ConfigureApplicationCookie moet worden geroepen na het aanroepen van AddIdentity of AddDefaultIdentity.
services.ConfigureApplicationCookie(options =>
{
options.AccessDeniedPath = "/Identity/Account/AccessDenied";
options.Cookie.Name = "YourAppCookieName";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
options.LoginPath = "/Identity/Account/Login";
// ReturnUrlParameter requires
//using Microsoft.AspNetCore.Authentication.Cookies;
options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
options.SlidingExpiration = true;
});
Zie CookieAuthenticationOptions voor meer informatie.
Opties voor wachtwoordhasher
PasswordHasherOptions haalt en stelt opties voor wachtwoord-hashing in.
| Optie | Description |
|---|---|
| CompatibilityMode | De compatibiliteitsmodus die wordt gebruikt bij het hashen van nieuwe wachtwoorden. Standaardwaarde is IdentityV3. De eerste byte van een gehasht wachtwoord, een zogenaamde opmaakmarkering, geeft de versie van het hashing-algoritme op dat wordt gebruikt om het wachtwoord te hashen. Wanneer u een wachtwoord verifieert op basis van een hash, selecteert de VerifyHashedPassword methode het juiste algoritme op basis van de eerste byte. Een client kan verifiëren, ongeacht welke versie van het algoritme is gebruikt om het wachtwoord te hashen. Het instellen van de compatibiliteitsmodus is van invloed op de hashing van nieuwe wachtwoorden. |
| IterationCount | Het aantal iteraties dat wordt gebruikt bij het hashen van wachtwoorden met PBKDF2. Deze waarde wordt alleen gebruikt wanneer de CompatibilityMode waarde is ingesteld op IdentityV3. De waarde moet een positief geheel getal zijn en de standaardwaarde 10000is . |
In het volgende voorbeeld is het IterationCount ingesteld op 12000 in Startup.ConfigureServices:
// using Microsoft.AspNetCore.Identity;
services.Configure<PasswordHasherOptions>(option =>
{
option.IterationCount = 12000;
});
Globaal vereisen dat alle gebruikers worden geverifieerd
Zie Geverifieerde gebruikers vereisenvoor informatie over het globaal vereisen van verificatie van alle gebruikers.