Ich habe den OAuth 2.0 Authorization Server-Beispielcode verfolgt Ссылка
Sehen Sie sich auch das Nugget-Paket Microsoft.aspnet.identity.samples an (install-package Microsoft.aspnet.identity.samples -Pre)
und versuche herauszufinden, wie passiv und aktiv Cookie Middleware funktioniert.
Im Beispiel des Authorization-Servers wird das Cookie "Application" auf passiv gesetzt. In den Identity-Beispielen ist "ApplicationCookie" aktiv.
Wenn ich über diese Eigenschaft lese, wird erklärt, dass passive Middleware nur ausgelöst wird, wenn sie von einem passenden AuthenticationType angefordert wird.
Wenn ich die Datei startup.auth.cs im Microsoft.aspnet.identity.samples editiere und den Anwendungscookie auf passiv setze, dann melde mich an, scheint zu validieren, meldet mich aber nicht an.
>Wenn ich tiefer in den Code einarbeite, sehe ich, dass der Account-Controller auf einen Aufruf von SignInHelper.SignInAsync
herunterkochtDiese Methode ruft vom Benutzer eine Forderung ab, die ein Aufruf an CreateIdentityAsync (user, DefaultAuthenticationTypes.ApplicationCookie)
istIch verstehe offensichtlich nichts, denn nach dem was ich gelesen habe und sagen kann, hat der Cookie den gleichen AuthenticationType wie der Claim, aber wenn das Authentication.SignIn aufgerufen wird, scheint der Cookie nicht gesetzt zu werden und ich bin es Zurück zur Hauptseite mit Optionen zum Anmelden und Anmelden.
Um das Problem zu duplizieren, starten Sie eine neue asp.net-Anwendung für ein leeres Projekt, installieren Sie dann das Identity-Beispielpaket, und ändern Sie dann die app.useCookieAuthentication von startup.auth.cs in:
%Vor%Ich habe versucht, den Cookie-Namen in startup.auth.cs zu ändern und den "benutzerdefinierten" Namen zu dem Code hinzuzufügen, der den Anspruch vergebens erzeugt.
Ich werde weiter forschen, dachte aber, ich würde in der Zwischenzeit auf die Gemeinde zugehen.
Ich bin mir Ihrer genauen Frage nicht sicher.
OWIN ist eine Pipeline, die alle registrierten Middleware-Module ausführt. Sie können mehrere Authentifizierungstypen für Middleware registrieren lassen.
Der Cookie entschlüsselt die Identität. Wenn Sie den Authentifizierungstyp auf einen externen Bearer ändern, handelt es sich um ein Bearer-Token im Cookie.
Ich bin mir nicht sicher, warum es nicht für dich funktioniert, das ist es, was ich benutze. (Ich habe mir die externen Logins der Vorlage nicht angesehen)
%Vor%Gute Erklärung von aktiv und passiv, von Herrn Brock Allen selbst.
Aktive vs passive Authentifizierungsmiddleware
Eine Frage, die sich stellt - Wenn die neuen Vorlagen mehrere OWIN-Authentifizierungs-Middleware konfiguriert haben, welche wird dann wirklich verwendet? Nun, OWIN-Authentifizierungs-Middleware hat das Konzept von passiv vs. aktiv. Aktive Middleware überprüft immer alle eingehenden Anforderungen und versucht, den Aufruf zu authentifizieren. Wenn sie erfolgreich sind, erstellen sie einen Prinzipal, der den aktuellen Benutzer darstellt, und weisen diesen Prinzipal der Hostumgebung zu. Passive Middleware hingegen prüft die Anfrage nur auf Nachfrage. Bei den Standardvorlagen von Visual Studio 2013 sind alle konfigurierten Middlewares standardmäßig passiv, mit Ausnahme der "Haupt" -Cookie-Authentifizierungs-Middleware (es stellt sich heraus, dass es zwei Cookie-Middlewares gibt, die in einigen Vorlagen verwendet werden - die Haupt-und ein anderes für externe Identitätsprovider und dieses andere ist als passiv markiert).
Seite funktioniert gut, wenn ich unter Kodierung kommentiere.
%Vor%.
Tags und Links asp.net middleware oauth-2.0 owin cookies