Ich möchte herausfinden, welcher Codeabschnitt welchen Wert für den Schlüssel "security.Authenticate" im Owin
Kontext setzen.Wie finden Sie heraus, wo ein bestimmtes Schlüsselwertpaar in Microsoft Katana in den Owin-Kontext eingefügt wurde?
Wie mache ich das?
Ich benutze Microsoft Katana mit AspNet Identity.
Hintergrund
ich die OAuth 2.0-Spezifikation gelesen habe, aber mein Ziel ist es, herauszufinden, wie Microsoft es in ihrem Code implementiert.
Wenn Sie also eine ASP.NET MVC-Projektvorlage mit Individuelle Konten Authentifizierung in Visual Studio 2015 öffnen, erhalten Sie eine Menge Kesselblechcode.
Im Laufe der Jahre habe ich gelernt, das meiste davon zu verstehen, aber hin und wieder vergesse ich und fange an, Dinge mit Reflector und IL Spy zu verfolgen.
Gerade jetzt, ich versuche zu verstehen, wie die ChallengeResult
Klasse, die mit der Boilerplate kommt an den OAuth-Anbieter umleiten, wenn es überhaupt nicht scheinbar aussieht auf seine ExecuteResult
Methode, die es tut.
Meine Recherche führte mich zu einer Codezeile, die eine func
aus der OwinContext
bekommt und ausführt. Der Schlüssel, den func
mit in der OwinContext
gespeichert wurde, war "security.Authenticate".
// Microsoft.Owin.Security.AuthenticationManager
internal Func<string[],
Action<IIdentity,
IDictionary<string, string>,
IDictionary<string, object>, object>,
object,
Task> AuthenticateDelegate
{
get
{
return this._context
.Get<Func<string[],
Action<IIdentity, IDictionary<string, string>, IDictionary<string, object>, object>,
object, Task>>("security.Authenticate");
}
}
Gute Frage und das habe ich auch nicht so schnell gefunden. Kann ich fragen, was Sie dazu gebracht hat, diesen bestimmten Gegenstand zu untersuchen? – trailmax
@trailmax Nur Neugier. Ich mag es, Abstraktionen auseinander zu reißen und nach innen zu schauen. Ich schreibe normalerweise immer meinen eigenen OAuth-Code, weil es so einfach ist. Aber bei Projekten in der Vergangenheit habe ich Microsofts Code benutzt und jedes Mal werde ich es bis zu dem Punkt verfolgen, wo ich weiß, was vor sich geht. Die Sache ist: Das nächste Mal werde ich die meisten Bits vergessen haben. Ich mache es wieder, weil ich mich mit Facebook integrieren möchte. Integration ist nicht die Herausforderung. In der Tat ist es ein Stück Kuchen. Nur dass ich schwarze Kisten hasse, wenn ich nicht weiß, was drinnen passiert. –
Das ist ein großer Wunsch! Lass mich sehen, ob ich es finden kann ... – trailmax