0

Ich versuche zu verstehen, wie Identität zusammenkommt. Ich möchte Dapper anstelle von Entity Framework implementieren, aber ich glaube, damit ich in der Lage bin, in Zukunft zu unterstützen, muss ich verstehen, was vor sich geht.Was ist IOptionen in AspNetCore Identity 2.0?

Als solche habe ich die 2.0.0-Version von Identity Repository hier heruntergeladen: https://github.com/aspnet/Identity/releases und begann sich umzusehen.

Der Teil, auf dem ich gerade feststecke, ist IOptions<IdentityOptions>, die von UserManager übergeben werden muss. Mit Blick auf die Klasse IdentityOptions verstehe ich, dass dies Konfigurationen für Dinge wie PasswordOptions usw. sind. Also muss ich diese instanziieren und einrichten und sie dann binden. Der Teil, den ich nicht verstehe, ist IOptions Schnittstelle. Es scheint ein Wrapper zu sein, aber warum ist es da, wozu dient es? Warum erstellen Sie nicht einfach IdentityOptions, warum muss es in die IOptions-Schnittstelle eingebunden werden?

+0

Dokumentation https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration#using-options-and-configuration-objects – Nkosi

Antwort

1

Wie ich es verstehe, ist IOptions die Schnittstelle, um jedes konfigurierte Objekt und seine zugrunde liegenden Eigenschaften abzurufen. Beispielsweise haben Sie mehrere Optionsobjekte unter IdentityOptions-Klasse. Anstatt sie alle nacheinander zu instanziieren, würden Sie Ihre IdentityOptions in die DI-Pipeline einfügen, indem Sie Ihre Optionsklasse in das Service Collection-Objekt einfügen. Auf diese Weise können Sie jedes beliebige Optionsobjekt (aus der IdentityOptions-Klasse) über die Konstruktorinjektion aufrufen.

Der Punkt zu erinnern ist, dass alle "Optionen" -Objekte unter IdentityOptions selbst Klassen sind. Um alle manuellen Instanziierungen zu vermeiden, können Sie DI-Pipelines verwenden, indem Sie IOptions um Ihre Options-Klasse wickeln.

hoffe das hilft.

Verwandte Themen