Kurse:Identity & Authorization: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Die Seite wurde neu angelegt: „// Benutzerregistrierung ApplicationUser user = new ApplicationUser { UserName = registerDTO.Email, Email = registerDTO.Email }; IdentityResult result = await _userManager.CreateAsync(user, registerDTO.Password); // Benutzer anmelden var result = await _signInManager.PasswordSignInAsync( loginDTO.Email, loginDTO.Password, isPersistent: false, lockoutOnFailure: false); // Rolle prüfen if (await _userManager.IsInRoleAsync(user, "Admin"))…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
<pre> | |||
// Benutzerregistrierung | // Benutzerregistrierung | ||
ApplicationUser user = new ApplicationUser { UserName = registerDTO.Email, Email = registerDTO.Email }; | ApplicationUser user = new ApplicationUser { UserName = registerDTO.Email, Email = registerDTO.Email }; | ||
| Zeile 60: | Zeile 61: | ||
options.LoginPath = "/Account/Login"; | options.LoginPath = "/Account/Login"; | ||
}); | }); | ||
</pre> | |||
Aktuelle Version vom 25. Juni 2025, 11:43 Uhr
// Benutzerregistrierung
ApplicationUser user = new ApplicationUser { UserName = registerDTO.Email, Email = registerDTO.Email };
IdentityResult result = await _userManager.CreateAsync(user, registerDTO.Password);
// Benutzer anmelden
var result = await _signInManager.PasswordSignInAsync(
loginDTO.Email,
loginDTO.Password,
isPersistent: false,
lockoutOnFailure: false);
// Rolle prüfen
if (await _userManager.IsInRoleAsync(user, "Admin")) {
// Admin-spezifische Logik
}
// Rolle erstellen (falls nicht vorhanden)
if (!await _roleManager.RoleExistsAsync("Admin")) {
await _roleManager.CreateAsync(new ApplicationRole("Admin"));
}
// Benutzer zu Rolle hinzufügen
await _userManager.AddToRoleAsync(user, "Admin");
// Benutzer abmelden
await _signInManager.SignOutAsync();
// E-Mail prüfen (bereits registriert?)
var existingUser = await _userManager.FindByEmailAsync(email);
return Json(existingUser == null);
// [Authorize] zum Schutz von Aktionen
[Authorize]
public IActionResult ProtectedAction() { ... }
// [AllowAnonymous] für anonyme Zugriffe
[AllowAnonymous]
public IActionResult PublicAction() { ... }
// [ValidateAntiForgeryToken] gegen CSRF
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult SubmitForm() { ... }
// Benutzerdefinierte Richtlinie in Program.cs
builder.Services.AddAuthorization(options => {
options.AddPolicy("NotAuthorized", policy => policy.RequireAssertion(
context => !context.User.Identity.IsAuthenticated));
});
// Identity-Konfiguration in Program.cs
builder.Services.AddIdentity<ApplicationUser, ApplicationRole>(options => {
options.Password.RequiredLength = 8;
options.Password.RequireNonAlphanumeric = true;
}).AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
// Identity-Cookie konfigurieren
builder.Services.ConfigureApplicationCookie(options => {
options.LoginPath = "/Account/Login";
});