Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
ASP.NET Core Identity verwendet Standardwerte für Einstellungen wie Kennwortrichtlinie, Sperrung und konfiguration cookie. Diese Einstellungen können beim Anwendungsstart außer Kraft gesetzt werden.
-Optionen
Die -Klasse stellt die Optionen dar, die zum Konfigurieren des -Systems verwendet werden können. muss nach dem Aufruf von oder festgelegt werden.
Ansprüche
gibt die mit den in der folgenden Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
| RoleClaimType | Ruft den für einen Rollenanspruch verwendeten Anspruchstyp ab oder legt ihn fest | ClaimTypes.Role |
| SecurityStampClaimType | Ruft den für den Sicherheitsstempelanspruch verwendeten Anspruchstyp ab oder legt ihn fest | AspNet.Identity.SecurityStamp |
| UserIdClaimType | Ruft den für den Benutzer-ID-Anspruch verwendeten Anspruchstyp ab oder legt ihn fest | ClaimTypes.NameIdentifier |
| UserNameClaimType | Ruft den für den Benutzernamenanspruch verwendeten Anspruchstyp ab oder legt ihn fest | ClaimTypes.Name |
Sperre
Eine Sperre wird in der PasswordSignInAsync-Methode festgelegt:
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();
}
Der vorangehende Code basiert auf der Vorlage LoginIdentity.
Sperroptionen werden in festgelegt:
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();
Der vorhergehende Code legt die auf die Standardwerte fest.
Bei einer erfolgreichen Authentifizierung wird die fehlgeschlagene Anzahl der Zugriffsversuche zurückgesetzt und die Zeit wird zurückgesetzt.
gibt die mit den in der Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
| AllowedForNewUsers | Bestimmt, ob neue Benutzer*innen gesperrt werden können | true |
| DefaultLockoutTimeSpan | Die Dauer, für die ein*e Benutzer*in gesperrt wird, wenn eine Sperrung erfolgt. | 5 Minuten |
| MaxFailedAccessAttempts | Die Anzahl der fehlgeschlagenen access Versuche, bis ein Benutzer gesperrt ist, wenn die Sperrung aktiviert ist. | 5 |
Kennwort
erfordert standardmäßig, dass Kennwörter jeweils mindestens einen Großbuchstaben, einen Kleinbuchstaben, eine Ziffer und ein nicht alphanumerisches Zeichen enthalten. Kennwörter müssen mindestens sechs Zeichen lang sein.
Kennwörter werden wie folgt konfiguriert:
- in .
- -Attribute von -Eigenschaften, wenn in die App eingebunden wird. --Eigenschaften finden Sie in den folgenden Dateien:
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.
gibt die mit den in der Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
| RequireDigit | Erfordert eine Zahl zwischen 0 und 9 im Kennwort | true |
| RequiredLength | Die Mindestlänge des Kennworts | 6 |
| RequireLowercase | Erfordert einen Kleinbuchstaben im Kennwort | true |
| RequireNonAlphanumeric | Erfordert ein nicht alphanumerisches Zeichen im Kennwort | true |
| RequiredUniqueChars | Gilt nur für ASP.NET Core 2.0 oder höher. Erfordert die Anzahl unterschiedlicher Zeichen im Passwort. |
1 |
| RequireUppercase | Erfordert einen Großbuchstaben im Kennwort | true |
Anmelden
Der folgende Code legt -Einstellungen (auf Standardwerte) fest:
builder.Services.Configure<IdentityOptions>(options =>
{
// Default SignIn settings.
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
});
gibt die mit den in der Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
| RequireConfirmedEmail | Erfordert für die Anmeldung eine bestätigte E-Mail-Adresse | false |
| RequireConfirmedPhoneNumber | Erfordert für die Anmeldung eine bestätigte Telefonnummer | false |
Token
gibt die mit den in der Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG |
|---|---|
| AuthenticatorTokenProvider | Ruft den ab, der zum Überprüfen von zweistufigen Anmeldungen mit einem Authentifikator verwendet wird, oder legt ihn fest |
| ChangeEmailTokenProvider | Ruft das ab oder legt es fest, das zum Generieren von Token verwendet wird, die in Bestätigungs-E-Mails bei Änderungen der E-Mail-Adresse eingesetzt werden. |
| ChangePhoneNumberTokenProvider | Ruft das ab oder legt es fest, das zum Generieren der Token verwendet wird, die bei Änderungen der Telefonnummer verwendet werden. |
| EmailConfirmationTokenProvider | Ruft den zum Generieren von Token, die in Bestätigungs-E-Mails für Konten verwendet werden, verwendeten Tokenanbieter ab oder legt ihn fest |
| PasswordResetTokenProvider | Ruft das zur Generierung von Tokens verwendete ab, die in E-Mails zum Zurücksetzen von Passwörtern genutzt werden, oder legt es fest. |
| ProviderMap | Wird verwendet, um einen Benutzertokenanbieter zu erstellen, bei dem der Schlüssel als Anbietername verwendet wird. |
Benutzer
builder.Services.Configure<IdentityOptions>(options =>
{
// Default User settings.
options.User.AllowedUserNameCharacters =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = false;
});
gibt die mit den in der Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
| AllowedUserNameCharacters | Zulässige Zeichen im Benutzernamen. | abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 -._@+ |
| RequireUniqueEmail | Erfordert, dass sämtliche Benutzer*innen eine eindeutige E-Mail haben. | false |
Einstellungen
Konfigurieren Sie das der App in . ConfigureApplicationCookie muss nach dem Aufrufen , oder .
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;
});
Weitere Informationen finden Sie unter .
Optionen für den Kennworthasher
ruft die Optionen für das Kennwort-Hashing ab und legt sie fest.
| Option | BESCHREIBUNG |
|---|---|
| CompatibilityMode | Der Kompatibilitätsmodus, der bei der Hasherstellung für neue Kennwörter verwendet wird. Wird standardmäßig auf festgelegt. Das erste Byte eines Hashkennworts wird als Formatmarkierung bezeichnet und gibt die Version des Hashalgorithmus an, der zum Erstellen des Hashwerts für das Kennwort verwendet wird. Beim Überprüfen eines Kennworts anhand eines Hashs wählt die -Methode den richtigen Algorithmus basierend auf dem ersten Byte aus. Ein Client kann sich unabhängig von der verwendeten Algorithmus-Version zum Hashen des Passworts authentifizieren. Das Festlegen des Kompatibilitätsmodus wirkt sich auf das Erstellen von Hashwerten für neue Kennwörter aus. |
| IterationCount | Die Anzahl der Iterationen, die beim Hashing von Passwörtern mithilfe von PBKDF2 verwendet werden. Dieser Wert wird nur verwendet, wenn auf festgelegt wird. Der Wert muss eine positive ganze Zahl sein und ist standardmäßig auf festgelegt. |
Im folgenden Beispiel wird auf in festgelegt:
// using Microsoft.AspNetCore.Identity;
builder.Services.Configure<PasswordHasherOptions>(option =>
{
option.IterationCount = 12000;
});
Globale Erzwingen der Authentifizierung aller Benutzer*innen
Informationen zum Anfordern der Authentifizierung für alle App-Benutzer finden Sie unter Erstellen Sie eine ASP.NET Core-App mit durch Autorisierung geschützten Benutzerdaten.
ISecurityStampValidator und „Überall abmelden“
Apps müssen auf Ereignisse reagieren, die sicherheitsrelevante Aktionen beinhalten, indem sie den der Benutzer*innen neu generieren. Beispielsweise sollte der neu generiert werden, wenn Sie einer Rolle beitreten, das Kennwort geändert wird oder andere sicherheitsrelevante Ereignisse auftreten. verwendet die -Schnittstelle, um den neu zu generieren. Die Standardimplementierung von registriert einen SecurityStampValidator bei der Hauptanwendung und bei der Zwei-Faktor-. Der Validator wird in das -Ereignis der einzelnen eingebunden, um aufzurufen und zu überprüfen, ob der Sicherheitsstempelanspruch der Benutzer*innen unverändert gegenüber dem im gespeicherten Wert ist. Der Validator ruft in regelmäßigen Abständen auf. Das Aufrufintervall stellt einen Kompromiss zwischen zu häufigen und zu seltenen Aufrufen an den Datenspeicher dar. Eine Überprüfung mit einem zu langen Zeitraum führt zu veralteten Anmeldungen. Rufen Sie auf, um zu erzwingen, dass vorhandene Cookies bei der nächsten Überprüfung invalidiert werden. Die meisten -Benutzeroberflächenkonten und Verwaltungsseiten rufen auf, nachdem sie das Kennwort geändert oder eine Anmeldung hinzugefügt haben. Apps können aufrufen, um eine Aktion zum Abmelden von allen Geräten zu implementieren.
Das Ändern des Validierungsintervalls wird im folgenden hervorgehobenen Code gezeigt:
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 verwendet Standardwerte für Einstellungen wie Kennwortrichtlinie, Sperrung und konfiguration cookie. Diese Einstellungen können in der -Klasse außer Kraft gesetzt werden.
-Optionen
Die -Klasse stellt die Optionen dar, die zum Konfigurieren des -Systems verwendet werden können. muss nach dem Aufruf von oder festgelegt werden.
Ansprüche
gibt die mit den in der folgenden Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
| RoleClaimType | Ruft den für einen Rollenanspruch verwendeten Anspruchstyp ab oder legt ihn fest | ClaimTypes.Role |
| SecurityStampClaimType | Ruft den für den Sicherheitsstempelanspruch verwendeten Anspruchstyp ab oder legt ihn fest | AspNet.Identity.SecurityStamp |
| UserIdClaimType | Ruft den für den Benutzer-ID-Anspruch verwendeten Anspruchstyp ab oder legt ihn fest | ClaimTypes.NameIdentifier |
| UserNameClaimType | Ruft den für den Benutzernamenanspruch verwendeten Anspruchstyp ab oder legt ihn fest | ClaimTypes.Name |
Sperre
Eine Sperre wird in der PasswordSignInAsync-Methode festgelegt:
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();
}
Der obige Code basiert auf der -Vorlage.
Sperroptionen werden in festgelegt:
services.Configure<IdentityOptions>(options =>
{
// Default Lockout settings.
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
options.Lockout.AllowedForNewUsers = true;
});
Der vorhergehende Code legt die auf die Standardwerte fest.
Bei einer erfolgreichen Authentifizierung wird die Anzahl der fehlgeschlagenen Zugriffsversuche zurückgesetzt, und der Timer wird zurückgesetzt.
gibt die mit den in der Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
| AllowedForNewUsers | Bestimmt, ob neue Benutzer*innen gesperrt werden können | true |
| DefaultLockoutTimeSpan | Die Dauer, für die ein*e Benutzer*in gesperrt wird, wenn eine Sperrung erfolgt. | 5 Minuten |
| MaxFailedAccessAttempts | Die Anzahl der fehlgeschlagenen access Versuche, bis ein Benutzer gesperrt ist, wenn die Sperrung aktiviert ist. | 5 |
Kennwort
erfordert standardmäßig, dass Kennwörter jeweils mindestens einen Großbuchstaben, einen Kleinbuchstaben, eine Ziffer und ein nicht alphanumerisches Zeichen enthalten. Kennwörter müssen mindestens sechs Zeichen lang sein.
Kennwörter werden wie folgt konfiguriert:
- in .
- -Attribute von -Eigenschaften, wenn in die App eingebunden wird. --Eigenschaften finden Sie in den folgenden Dateien:
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;
});
gibt die mit den in der Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
| RequireDigit | Erfordert eine Zahl zwischen 0 und 9 im Kennwort | true |
| RequiredLength | Die Mindestlänge des Kennworts | 6 |
| RequireLowercase | Erfordert einen Kleinbuchstaben im Kennwort | true |
| RequireNonAlphanumeric | Erfordert ein nicht alphanumerisches Zeichen im Kennwort | true |
| RequiredUniqueChars | Gilt nur für ASP.NET Core 2.0 oder höher. Erfordert die Anzahl unterschiedlicher Zeichen im Passwort. |
1 |
| RequireUppercase | Erfordert einen Großbuchstaben im Kennwort | true |
Anmelden
Der folgende Code legt -Einstellungen (auf Standardwerte) fest:
services.Configure<IdentityOptions>(options =>
{
// Default SignIn settings.
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
});
gibt die mit den in der Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
| RequireConfirmedEmail | Erfordert für die Anmeldung eine bestätigte E-Mail-Adresse | false |
| RequireConfirmedPhoneNumber | Erfordert für die Anmeldung eine bestätigte Telefonnummer | false |
Token
gibt die mit den in der Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG |
|---|---|
| AuthenticatorTokenProvider | Ruft den ab, der zum Überprüfen von zweistufigen Anmeldungen mit einem Authentifikator verwendet wird, oder legt ihn fest |
| ChangeEmailTokenProvider | Ruft das ab oder legt es fest, das zum Generieren von Token verwendet wird, die in Bestätigungs-E-Mails bei Änderungen der E-Mail-Adresse eingesetzt werden. |
| ChangePhoneNumberTokenProvider | Ruft das ab oder legt es fest, das zum Generieren der Token verwendet wird, die bei Änderungen der Telefonnummer verwendet werden. |
| EmailConfirmationTokenProvider | Ruft den zum Generieren von Token, die in Bestätigungs-E-Mails für Konten verwendet werden, verwendeten Tokenanbieter ab oder legt ihn fest |
| PasswordResetTokenProvider | Ruft das zur Generierung von Tokens verwendete ab, die in E-Mails zum Zurücksetzen von Passwörtern genutzt werden, oder legt es fest. |
| ProviderMap | Wird verwendet, um einen Benutzertokenanbieter zu erstellen, bei dem der Schlüssel als Anbietername verwendet wird. |
Benutzer
services.Configure<IdentityOptions>(options =>
{
// Default User settings.
options.User.AllowedUserNameCharacters =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = false;
});
gibt die mit den in der Tabelle beschriebenen Eigenschaften an.
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
| AllowedUserNameCharacters | Zulässige Zeichen im Benutzernamen. | abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 -._@+ |
| RequireUniqueEmail | Erfordert, dass sämtliche Benutzer*innen eine eindeutige E-Mail haben. | false |
Einstellungen
Konfigurieren Sie das der App in . ConfigureApplicationCookie muss nach dem Aufrufen , oder .
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;
});
Weitere Informationen finden Sie unter .
Optionen für den Kennworthasher
ruft die Optionen für das Kennwort-Hashing ab und legt sie fest.
| Option | BESCHREIBUNG |
|---|---|
| CompatibilityMode | Der Kompatibilitätsmodus, der bei der Hasherstellung für neue Kennwörter verwendet wird. Wird standardmäßig auf festgelegt. Das erste Byte eines Hashkennworts wird als Formatmarkierung bezeichnet und gibt die Version des Hashalgorithmus an, der zum Erstellen des Hashwerts für das Kennwort verwendet wird. Beim Überprüfen eines Kennworts anhand eines Hashs wählt die -Methode den richtigen Algorithmus basierend auf dem ersten Byte aus. Ein Client kann sich unabhängig von der verwendeten Algorithmus-Version zum Hashen des Passworts authentifizieren. Das Festlegen des Kompatibilitätsmodus wirkt sich auf das Erstellen von Hashwerten für neue Kennwörter aus. |
| IterationCount | Die Anzahl der Iterationen, die beim Hashing von Passwörtern mithilfe von PBKDF2 verwendet werden. Dieser Wert wird nur verwendet, wenn auf festgelegt wird. Der Wert muss eine positive ganze Zahl sein und ist standardmäßig auf festgelegt. |
Im folgenden Beispiel wird auf in festgelegt:
// using Microsoft.AspNetCore.Identity;
services.Configure<PasswordHasherOptions>(option =>
{
option.IterationCount = 12000;
});
Globale Erzwingen der Authentifizierung aller Benutzer*innen
Informationen zum Anfordern der Authentifizierung für alle App-Benutzer finden Sie unter Erstellen Sie eine ASP.NET Core-App mit durch Autorisierung geschützten Benutzerdaten.