Bygg ASP.NET Core-autentisering med Logto
Lär dig hur man bygger ett användarautentiseringsflöde med ASP.NET Core genom att integrera Logto SDK.
Lär dig hur man bygger ett användarautentiseringsflöde med ASP.NET Core genom att integrera Logto SDK.
I denna handledning kommer vi att visa hur du bygger ett användarautentiseringsflöde med ASP.NET Core genom att integrera Logto SDK. Handledningen använder C# som programmeringsspråk.
Innan du börjar, se till att du har följande:
För att komma igång, skapa en Logto-applikation med typen "Traditionell web". Följ dessa steg för att skapa en Logto-applikation:
Sedan bör du se en interaktiv handledning som vägleder dig genom processen att integrera Logto SDK med din ASP.NET Core-applikation. Följande innehåll kan användas som en referens för framtida bruk.
Observera att den minsta stödda versionen av ASP.NET Core är 6.0.
Öppna Startup.cs (eller Program.cs) och lägg till följande kod för att registrera Logto-autentiseringsmiddleware:
Metoden AddLogtoAuthentication kommer att utföra följande saker:
LogtoDefaults.CookieScheme.LogtoDefaults.AuthenticationScheme.LogtoDefaults.AuthenticationScheme.Lägg till följande URI i listan över Omdirigerings-URI:er på Logto-applikationens detaljsida:
För att logga in med Logto, kan du använda metoden ChallengeAsync:
Metoden ChallengeAsync kommer att omdirigera användaren till Logtos inloggningssida.
Egenskapen RedirectUri används för att omdirigera användaren tillbaka till din webbapplikation efter autentisering. Observera att den är annorlunda än den omdirigerings-URI du konfigurerade på Logto-applikationens detaljsida:
RedirectUri är den URI som kommer att omdirigeras till efter nödvändiga åtgärder har vidtagits i Logto-autentiseringsmiddleware.Ordningen av åtgärderna är 1 -> 2. För tydlighetens skull, låt oss kalla omdirigerings-URI:n på Logto-applikationens detaljsida för Logto omdirigerings-URI och egenskapen RedirectUri för applikationsomdirigerings-URI.
Logto omdirigerings-URI har ett standardvärde på /Callback, som du kan lämna som den är om det inte finns något särskilt krav. Om du vill ändra det, kan du ställa in CallbackPath-egenskapen för LogtoOptions:
Kom ihåg att uppdatera värdet på Logto-applikationens detaljsida därefter.
Lägg till följande URI i listan över Omdirigerings-URI:er efter utloggning på Logto-applikationens detaljsida:
För att logga ut med Logto, kan du använda metoden SignOutAsync:
Metoden SignOutAsync kommer att rensa autentiseringscookien och omdirigera användaren till Logtos utloggningssida.
Egenskapen RedirectUri används för att omdirigera användaren tillbaka till din webbapplikation efter utloggning. Observera att den är annorlunda än omdirigerings-URI:n efter utloggning som du konfigurerade på Logto-applikationens detaljsida:
RedirectUri är den URI som kommer att omdirigeras till efter nödvändiga åtgärder har vidtagits i Logto-autentiseringsmiddleware.Ordningen av åtgärderna är 1 -> 2. För tydlighetens skull, låt oss kalla omdirigerings-URI:n efter utloggning på Logto-applikationens detaljsida för Logto omdirigerings-URI efter utloggning och egenskapen RedirectUri för applikationsomdirigerings-URI efter utloggning.
Logto omdirigerings-URI efter utloggning har ett standardvärde på /SignedOutCallback, som du kan lämna som den är om det inte finns något särskilt krav. Om du vill ändra det, kan du ställa in SignedOutCallbackPath-egenskapen för LogtoOptions:
Kom ihåg att uppdatera värdet på Logto-applikationens detaljsida därefter.
Först, lägg till hanteringsmetoderna till din PageModel, till exempel:
Sedan, lägg till knapparna på din Razor-sida (html):
<p>Is authenticated: @User.Identity?.IsAuthenticated</p>
<form method="post">
@if (User.Identity?.IsAuthenticated == true)
{
<button type="submit" asp-page-handler="SignOut">Sign out</button>
} else {
<button type="submit" asp-page-handler="SignIn">Sign in</button>
}
</form>
Det kommer visa "Sign in"-knappen om användaren inte är autentiserad, och visa "Sign out"-knappen om användaren är autentiserad.
Nu kan du köra webbapplikationen och försöka logga in/logga ut med Logto:
Om du stöter på några problem under integrationen, tveka inte att kontakta oss via e-post på [email protected] eller gå med i vår Discord-server!