Ich habe eine Klasse, die ClaimsIdentity
als eine Abhängigkeit wie so hat:Erste das ClaimsPrincipal oder ClaimsIdentity von innen ASP.NET Core-Dependency Injection
öffentlicher ClaimsIdentityDecorator (ClaimsIdentity Identität)
, die angeblich der Anspruch des aktuellen Benutzers sein. Ich abrufen es wie über die IHttpContextAccessor
wie so:
services.AddScoped(x=>
{
var context = x.GetService<IHttpContextAccessor>();
return context.HttpContext.User.Identity as ClaimsIdentity;
});
Ich brauche einen Benutzer Anspruch zu überprüfen, und es scheint, dass ClaimsIdentity oder ClaimsPrincipal oder ein anderes Identitätsobjekt würde automatisch für mich injiziert werden. Es aus dem HttpContext abzurufen und es selbst hinzuzufügen, ist in Ordnung. Wenn jedoch ein anderes Objekt oder eine andere Schnittstelle vorhanden ist, für die bereits Ansprüche bestehen, möchte ich meine Klassen so entwerfen, dass sie diese Abhängigkeit übernehmen.
Auch ich möchte nur sicherstellen, dass dies auf der Scope-Ebene injiziert werden sollte.
Warum injizieren Sie nicht einfach "IHttpContextAccessor" in die abhängigen Klassen und extrahieren Sie den Benutzer aus dem Kontext nach Bedarf. – Nkosi
@Nkosi, weil ich nur den aktuellen Benutzer will, und seine Ansprüche. nicht der gesamte http-Kontext. –