0

Ich habe eine brandneue ASP.Net Core-Webanwendung erstellt und Identitätsdienste aktiviert. Das Framework erstellt hilfreicherweise eine Reihe von Ansichts- und Ansichtsmodellen, um die Aufgabe zu erledigen, Benutzer zu erstellen, zu validieren und zu entfernen. Allerdings bin ich ein wenig verwirrt über die EF-Komponente (ich bin ziemlich neu in EF, so dass ich möglicherweise etwas vermisse).EntityFrameworkCore Identity

Der Account hat UserManager<ApplicationUser> userManager hinein injiziert und zum Beispiel für Kontoerstellung, nennt so etwas wie:

var result = await _userManager.CreateAsync(user, model.Password); 

Wie ich verstehe, was dies zu tun, wird es Funktionalität innerhalb Microsoft.AspNetCore.Identity aufrufen, die Karten (direkt) zu einer Tabelle in der DB (standardmäßig dbo.ASPNetUsers - oder ähnlich). Normalerweise würde ich erwarten, dass diese Funktionalität in einem Dienst sitzt, der mit der DB kommuniziert; Dies bietet eine Abstraktionsschicht und ein Gateway zur Datenbank.

Meine Frage ist, ist die obige Funktionalität, die das gleiche in gewisser Hinsicht gibt, oder kommunizieren wir effektiv direkt mit der DB von der Website?

Antwort

1

UserManager hängt von der IUserStore-Schnittstelle ab, von der es eine Implementierung gibt, die EFCore verwendet, die in UserManager eingefügt wird. Es ist auch möglich, andere Implementierungen der verschiedenen Schnittstellen durchzuführen. Es gibt also eine Überlagerung, UserManager spricht nicht direkt mit der db, sondern mit Service-Interfaces.

Die große Sache ist es Open Source ist so, wenn Sie sehen wollen, wie die Dinge funktionieren Sie können leicht https://github.com/aspnet/Identity/tree/dev/src

Verwandte Themen