Ja bym w Core zrobił sobie jakąś reprezentację usera, która jest całkowicie niezależna od ASP.NET Core Identity (bo domeną mojej aplikacji raczej nie jest zarządzanie hasłami użytkownika, czy tam opcjami MFA, więc domena może zupełnie o tym nie wiedzieć ;)).
Powiązanie pomiędzy encją w Core, a obiektem IdentityUser z ASP.NET Core Identity można zrobić luźno na podstawie Id/Guid.
Do Core wstrzykuję jakiś IUserContext mający w sobie identyfikator użytkownika (albo jakiś worek z propertisami jak potrzebuję czegoś więcej) i później w zależności w jakim kontekście operuję w Core, pobieram na podstawie tego identyfikatora odpowiednią encję biznesowo reprezentującą użytkownika.
UserContext wypełniany jest danymi pochodzącymi czy to z jakiejś sesji czy z JWT, w zależności czego tam akurat fizycznie używam do uwierzytelnienia, ale dzieje się to poza Core, bo nie jest to domena mojej aplikacji (ja często to robiłem po prostu w warstwie webowej, bo tam obsługiwałem sesje/JWT, ale nie wiem czy jest to zgodnie z czystą architekturą :]).
A samo zarządzanie użytkownikami też lubię wynieść do zewnętrznej usługi :) Jakieś Azure AD, Azure AD B2C, Auth0, czy IdentityServer, w zależności od przypadku.
Z czystym ASP.NET Core Identity ostatnio do czynienia miałem kilka lat temu, ale do obsługi logowania/rejestracji pewnie zrobiłbym sobie jakiś oddzielny moduł Auth
poza Core.
nie rozumiem po co jakieś operowanie czymkolwiek w core
,Od weryfikacji czy user ma prawo cos zrobic jest serwis, nie core. Bo wtedy wciągane są zależności.
trochę wchodzimy w dyskusję co autor rozumie przez Core. Ja widziałem i implementacje gdzie Core to była warstwa Application + Domain jak i implementacje gdzie Application i Domain to oddzielne warstwy (to chyba bardziej zgodne z CA). To co miałem na myśli to, że w bardziej skomplikowanych przypadkach w zależności od kontekstu biznesowego mogę mieć różne rozumienie czym jest tenUser
i mieć różne jego modele.Od weryfikacji czy user ma prawo cos zrobic jest serwis, nie core. Bo wtedy wciągane są zależności.
- naturalnie. Ale jeśli zacore
uznajemy tak jak jadomenę
, to tam są głównie metody.