ASP.NET Core'ı yapılandırma Identity
ASP.NET Core Identity parola ilkesi, kilitleme ve cookie yapılandırma gibi ayarlar için varsayılan değerleri kullanır. Bu ayarlar uygulama başlangıcında geçersiz kılınabilir.
Identity Seçenekler
sınıfı, IdentityOptions sistemi yapılandırmak Identity için kullanılabilecek seçenekleri temsil eder. IdentityOptionsveya AddDefaultIdentityçağrıldıktan AddIdentity sonra ayarlanmalıdır.
Iddia Identity
IdentityOptions.ClaimsIdentityClaimsIdentityOptions, aşağıdaki tabloda gösterilen özelliklerle belirtir.
Özellik | Açıklama | Varsayılan |
---|---|---|
RoleClaimType | Rol talebi için kullanılan talep türünü alır veya ayarlar. | ClaimTypes.Role |
SecurityStampClaimType | Güvenlik damgası talebi için kullanılan talep türünü alır veya ayarlar. | AspNet.Identity.SecurityStamp |
UserIdClaimType | Kullanıcı tanımlayıcı talebi için kullanılan talep türünü alır veya ayarlar. | ClaimTypes.NameIdentifier |
UserNameClaimType | Kullanıcı adı talebi için kullanılan talep türünü alır veya ayarlar. | ClaimTypes.Name |
Lokavt
PasswordSignInAsync yönteminde kilitleme ayarlanır:
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();
}
Yukarıdaki kod şablonu temel Login
Identity alır.
Kilitleme seçenekleri içinde Program.cs
ayarlanır:
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();
Yukarıdaki kod, varsayılan değerlerle öğesini IdentityOptions LockoutOptions ayarlar.
Başarılı bir kimlik doğrulaması başarısız olan erişim denemelerinin sayısını sıfırlar ve saati sıfırlar.
IdentityOptions.LockoutLockoutOptions tablosunda gösterilen özelliklerle belirtir.
Özellik | Açıklama | Varsayılan |
---|---|---|
AllowedForNewUsers | Yeni bir kullanıcının kilitlenip kilitlenebileceğini belirler. | true |
DefaultLockoutTimeSpan | Kilitleme gerçekleştiğinde kullanıcının kilitlenme süresi. | 5 dakika |
MaxFailedAccessAttempts | Kilitleme etkinse, bir kullanıcı kilitlenene kadar başarısız olan erişim denemelerinin sayısı. | 5 |
Parola
Varsayılan olarak, Identity parolaların büyük harf karakter, küçük harf karakter, basamak ve alfasayısal olmayan bir karakter içermesini gerektirir. Parolalar en az altı karakter uzunluğunda olmalıdır.
Parolalar şu şekilde yapılandırılır:
- PasswordOptionsiçinde .
Program.cs
[StringLength]
uygulamaya iskelesi oluşturulmuşsa Identity özelliklerin öznitelikleriPassword
.InputModel
Password
özellikleri aşağıdaki dosyalarda bulunur:Areas/Identity/Pages/Account/Register.cshtml.cs
Areas/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.PasswordPasswordOptions tablosunda gösterilen özelliklerle belirtir.
Özellik | Açıklama | Varsayılan |
---|---|---|
RequireDigit | Parolada 0-9 arasında bir sayı gerektirir. | true |
RequiredLength | Parolanın en düşük uzunluğu. | 6 |
RequireLowercase | Parolada küçük harf karakter gerektirir. | true |
RequireNonAlphanumeric | Parolada alfasayısal olmayan bir karakter gerektirir. | true |
RequiredUniqueChars | Yalnızca ASP.NET Core 2.0 veya üzeri için geçerlidir. Paroladaki ayrı karakter sayısını gerektirir. |
1 |
RequireUppercase | Parolada büyük harf karakter gerektirir. | true |
Oturum açma
Aşağıdaki kod ayarları (varsayılan değerlere) ayarlar SignIn
:
builder.Services.Configure<IdentityOptions>(options =>
{
// Default SignIn settings.
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
});
IdentityOptions.SignInSignInOptions tablosunda gösterilen özelliklerle belirtir.
Özellik | Açıklama | Varsayılan |
---|---|---|
RequireConfirmedEmail | Oturum açmak için onaylanmış bir e-posta gerekir. | false |
RequireConfirmedPhoneNumber | Oturum açmak için onaylanmış bir telefon numarası gerekir. | false |
Belirteçler
IdentityOptions.TokensTokenOptions tablosunda gösterilen özelliklerle belirtir.
Özellik | Açıklama |
---|---|
AuthenticatorTokenProvider | İki öğeli oturum açmaları bir kimlik doğrulayıcıyla doğrulamak için kullanılan öğesini alır veya ayarlar AuthenticatorTokenProvider . |
ChangeEmailTokenProvider | E-posta değişikliği onay e-postalarında kullanılan belirteçleri oluşturmak için kullanılan öğesini alır veya ayarlar ChangeEmailTokenProvider . |
ChangePhoneNumberTokenProvider | Telefon numaralarını değiştirirken kullanılan belirteçleri oluşturmak için kullanılan öğesini ChangePhoneNumberTokenProvider alır veya ayarlar. |
EmailConfirmationTokenProvider | Hesap onay e-postalarında kullanılan belirteçleri oluşturmak için kullanılan belirteç sağlayıcısını alır veya ayarlar. |
PasswordResetTokenProvider | Parola sıfırlama e-postalarında kullanılan belirteçleri oluşturmak için kullanılan öğesini alır veya ayarlar IUserTwoFactorTokenProvider<TUser> . |
ProviderMap | Sağlayıcı adı olarak kullanılan anahtarla bir Kullanıcı Belirteci Sağlayıcısı oluşturmak için kullanılır. |
User
builder.Services.Configure<IdentityOptions>(options =>
{
// Default User settings.
options.User.AllowedUserNameCharacters =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = false;
});
IdentityOptions.UserUserOptions tablosunda gösterilen özelliklerle belirtir.
Özellik | Açıklama | Varsayılan |
---|---|---|
AllowedUserNameCharacters | Kullanıcı adı içinde izin verilen karakterler. | abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 -._@+ |
RequireUniqueEmail | Her kullanıcının benzersiz bir e-postası olmasını gerektirir. | false |
Cookie ayarları
uygulamasındaki uygulamaları cookie Program.cs
yapılandırın. Veya çağrıldıktan AddIdentity
AddDefaultIdentity
sonra ConfigureApplicationCookie çağrılmalıdır.
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;
});
Daha fazla bilgi için bkz. CookieAuthenticationOptions.
Parola Hasher seçenekleri
PasswordHasherOptions parola karması seçeneklerini alır ve ayarlar.
Seçenek | Açıklama |
---|---|
CompatibilityMode | Yeni parolalar karma olarak kullanılırken kullanılan uyumluluk modu. varsayılan değeridir IdentityV3. Biçim işaretçisi olarak adlandırılan karma parolanın ilk baytı, parolayı karma olarak ayarlamak için kullanılan karma algoritmasının sürümünü belirtir. Karma bir parolayı doğrularken yöntemi ilk VerifyHashedPassword bayt temelinde doğru algoritmayı seçer. İstemci, parolayı karma olarak kullanmak için algoritmanın hangi sürümünün kullanıldığına bakılmaksızın kimlik doğrulaması yapabilir. Uyumluluk modunun ayarlanması yeni parolaların karması etkiler. |
IterationCount | PBKDF2 kullanılarak parola karmaları oluşturulurken kullanılan yineleme sayısı. Bu değer yalnızca olarak ayarlandığında IdentityV3kullanılırCompatibilityMode. Değer pozitif bir tamsayı olmalı ve varsayılan olarak 100000 olmalıdır. |
Aşağıdaki örnekte, IterationCount içinde olarak 12000
Program.cs
ayarlanır:
// using Microsoft.AspNetCore.Identity;
builder.Services.Configure<PasswordHasherOptions>(option =>
{
option.IterationCount = 12000;
});
Genel olarak tüm kullanıcıların kimliğinin doğrulanması gerekir
Genel olarak tüm kullanıcıların kimliğinin doğrulanmış olmasını gerektirme hakkında bilgi için bkz . Kimliği doğrulanmış kullanıcılar gerektirme.
ISecurityStampValidator ve SignOut her yerde
Uygulamaların, kullanıcıları ClaimsPrincipalyeniden oluşturma yoluyla güvenlikle ilgili hassas eylemler içeren olaylara tepki vermeleri gerekir. Örneğin, ClaimsPrincipal
bir role katılırken, parola değiştirilirken veya güvenlikle ilgili diğer hassas olaylar sırasında yeniden oluşturulmalıdır. Identity arabirimini ISecurityStampValidator kullanarak yeniden ClaimsPrincipal
oluşturur. varsayılan uygulamasıIdentity, ana uygulama cookieve iki öğeli cookieile bir SecurityStampValidator kaydeder. Doğrulayıcı, kullanıcının güvenlik damgası talebi ile içinde depolananların değişmediğini doğrulamak için çağrılacak Identity her cookie birinin olayına cookietakılırOnValidatePrincipal. Doğrulayıcı, düzenli aralıklarla çağrısında bulunur. Çağrı aralığı, veri deposuna çok sık ve yeterince sık isabet etmemesi arasında bir dengedir. Uzun bir aralıkla denetlenerek eski talepler elde edilir. Mevcut tanımlama bilgilerinin bir sonraki denetlenişinde geçersiz kılınmaya zorlamak için çağrısı userManager.UpdateSecurityStampAsync(user)
. Kullanıcı arabirimi hesabının ve yönetme sayfalarının Identity çoğu, parolayı değiştirdikten veya oturum açma bilgisi ekledikten sonra arar userManager.UpdateSecurityStampAsync(user)
. Uygulamalar, her yerde oturumu kapatma eylemi uygulamak için çağrısı userManager.UpdateSecurityStampAsync(user)
yapabilir.
Doğrulama aralığının değiştirilmesi aşağıdaki vurgulanmış kodda gösterilir:
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 parola ilkesi, kilitleme ve cookie yapılandırma gibi ayarlar için varsayılan değerleri kullanır. Bu ayarlar sınıfta Startup
geçersiz kılınabilir.
Identity Seçenekler
sınıfı, IdentityOptions sistemi yapılandırmak Identity için kullanılabilecek seçenekleri temsil eder. IdentityOptions
veya AddDefaultIdentity
çağrıldıktan AddIdentity
sonra ayarlanmalıdır.
Iddia Identity
IdentityOptions.ClaimsIdentityClaimsIdentityOptions, aşağıdaki tabloda gösterilen özelliklerle belirtir.
Özellik | Açıklama | Varsayılan |
---|---|---|
RoleClaimType | Rol talebi için kullanılan talep türünü alır veya ayarlar. | ClaimTypes.Role |
SecurityStampClaimType | Güvenlik damgası talebi için kullanılan talep türünü alır veya ayarlar. | AspNet.Identity.SecurityStamp |
UserIdClaimType | Kullanıcı tanımlayıcı talebi için kullanılan talep türünü alır veya ayarlar. | ClaimTypes.NameIdentifier |
UserNameClaimType | Kullanıcı adı talebi için kullanılan talep türünü alır veya ayarlar. | ClaimTypes.Name |
Lokavt
PasswordSignInAsync yönteminde kilitleme ayarlanır:
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();
}
Yukarıdaki kod şablonu temel Login
Identity alır.
Kilitleme seçenekleri içinde StartUp.ConfigureServices
ayarlanır:
services.Configure<IdentityOptions>(options =>
{
// Default Lockout settings.
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
options.Lockout.MaxFailedAccessAttempts = 5;
options.Lockout.AllowedForNewUsers = true;
});
Yukarıdaki kod, varsayılan değerlerle öğesini IdentityOptions LockoutOptions ayarlar.
Başarılı bir kimlik doğrulaması başarısız olan erişim denemelerinin sayısını sıfırlar ve saati sıfırlar.
IdentityOptions.LockoutLockoutOptions tablosunda gösterilen özelliklerle belirtir.
Özellik | Açıklama | Varsayılan |
---|---|---|
AllowedForNewUsers | Yeni bir kullanıcının kilitlenip kilitlenebileceğini belirler. | true |
DefaultLockoutTimeSpan | Kilitleme gerçekleştiğinde kullanıcının kilitlenme süresi. | 5 dakika |
MaxFailedAccessAttempts | Kilitleme etkinse, bir kullanıcı kilitlenene kadar başarısız olan erişim denemelerinin sayısı. | 5 |
Parola
Varsayılan olarak, Identity parolaların büyük harf karakter, küçük harf karakter, basamak ve alfasayısal olmayan bir karakter içermesini gerektirir. Parolalar en az altı karakter uzunluğunda olmalıdır.
Parolalar şu şekilde yapılandırılır:
- PasswordOptionsiçinde .
Startup.ConfigureServices
[StringLength]
uygulamaya iskelesi oluşturulmuşsa Identity özelliklerin öznitelikleriPassword
.InputModel
Password
özellikleri aşağıdaki dosyalarda bulunur:Areas/Identity/Pages/Account/Register.cshtml.cs
Areas/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.PasswordPasswordOptions tablosunda gösterilen özelliklerle belirtir.
Özellik | Açıklama | Varsayılan |
---|---|---|
RequireDigit | Parolada 0-9 arasında bir sayı gerektirir. | true |
RequiredLength | Parolanın en düşük uzunluğu. | 6 |
RequireLowercase | Parolada küçük harf karakter gerektirir. | true |
RequireNonAlphanumeric | Parolada alfasayısal olmayan bir karakter gerektirir. | true |
RequiredUniqueChars | Yalnızca ASP.NET Core 2.0 veya üzeri için geçerlidir. Paroladaki ayrı karakter sayısını gerektirir. |
1 |
RequireUppercase | Parolada büyük harf karakter gerektirir. | true |
Oturum açma
Aşağıdaki kod ayarları (varsayılan değerlere) ayarlar SignIn
:
services.Configure<IdentityOptions>(options =>
{
// Default SignIn settings.
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
});
IdentityOptions.SignInSignInOptions tablosunda gösterilen özelliklerle belirtir.
Özellik | Açıklama | Varsayılan |
---|---|---|
RequireConfirmedEmail | Oturum açmak için onaylanmış bir e-posta gerekir. | false |
RequireConfirmedPhoneNumber | Oturum açmak için onaylanmış bir telefon numarası gerekir. | false |
Belirteçler
IdentityOptions.TokensTokenOptions tablosunda gösterilen özelliklerle belirtir.
Özellik | Açıklama |
---|---|
AuthenticatorTokenProvider | İki öğeli oturum açmaları bir kimlik doğrulayıcıyla doğrulamak için kullanılan öğesini alır veya ayarlar AuthenticatorTokenProvider . |
ChangeEmailTokenProvider | E-posta değişikliği onay e-postalarında kullanılan belirteçleri oluşturmak için kullanılan öğesini alır veya ayarlar ChangeEmailTokenProvider . |
ChangePhoneNumberTokenProvider | Telefon numaralarını değiştirirken kullanılan belirteçleri oluşturmak için kullanılan öğesini ChangePhoneNumberTokenProvider alır veya ayarlar. |
EmailConfirmationTokenProvider | Hesap onay e-postalarında kullanılan belirteçleri oluşturmak için kullanılan belirteç sağlayıcısını alır veya ayarlar. |
PasswordResetTokenProvider | Parola sıfırlama e-postalarında kullanılan belirteçleri oluşturmak için kullanılan öğesini alır veya ayarlar IUserTwoFactorTokenProvider<TUser> . |
ProviderMap | Sağlayıcı adı olarak kullanılan anahtarla bir Kullanıcı Belirteci Sağlayıcısı oluşturmak için kullanılır. |
User
services.Configure<IdentityOptions>(options =>
{
// Default User settings.
options.User.AllowedUserNameCharacters =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
options.User.RequireUniqueEmail = false;
});
IdentityOptions.UserUserOptions tablosunda gösterilen özelliklerle belirtir.
Özellik | Açıklama | Varsayılan |
---|---|---|
AllowedUserNameCharacters | Kullanıcı adı içinde izin verilen karakterler. | abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 -._@+ |
RequireUniqueEmail | Her kullanıcının benzersiz bir e-postası olmasını gerektirir. | false |
Cookie ayarları
uygulamasındaki uygulamaları cookie Startup.ConfigureServices
yapılandırın. Veya çağrıldıktan AddIdentity
AddDefaultIdentity
sonra ConfigureApplicationCookie çağrılmalıdır.
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;
});
Daha fazla bilgi için bkz. CookieAuthenticationOptions.
Parola Hasher seçenekleri
PasswordHasherOptions parola karması seçeneklerini alır ve ayarlar.
Seçenek | Açıklama |
---|---|
CompatibilityMode | Yeni parolalar karma olarak kullanılırken kullanılan uyumluluk modu. varsayılan değeridir IdentityV3. Biçim işaretçisi olarak adlandırılan karma parolanın ilk baytı, parolayı karma olarak ayarlamak için kullanılan karma algoritmasının sürümünü belirtir. Karma bir parolayı doğrularken yöntemi ilk VerifyHashedPassword bayt temelinde doğru algoritmayı seçer. İstemci, parolayı karma olarak kullanmak için algoritmanın hangi sürümünün kullanıldığına bakılmaksızın kimlik doğrulaması yapabilir. Uyumluluk modunun ayarlanması yeni parolaların karması etkiler. |
IterationCount | PBKDF2 kullanılarak parola karmaları oluşturulurken kullanılan yineleme sayısı. Bu değer yalnızca olarak ayarlandığında IdentityV3kullanılırCompatibilityMode. Değer pozitif bir tamsayı olmalı ve varsayılan olarak 10000 olmalıdır. |
Aşağıdaki örnekte, IterationCount içinde olarak 12000
Startup.ConfigureServices
ayarlanır:
// using Microsoft.AspNetCore.Identity;
services.Configure<PasswordHasherOptions>(option =>
{
option.IterationCount = 12000;
});
Genel olarak tüm kullanıcıların kimliğinin doğrulanması gerekir
Genel olarak tüm kullanıcıların kimliğinin doğrulanmış olmasını gerektirme hakkında bilgi için bkz . Kimliği doğrulanmış kullanıcılar gerektirme.
ASP.NET Core