使用 Logto 構建 ASP.NET Core 認證
學習如何藉由整合 Logto SDK 來構建 ASP.NET Core 的用戶認證流程。
學習如何藉由整合 Logto SDK 來構建 ASP.NET Core 的用戶認證流程。
在本教程中,我們將向你展示如何藉由整合 Logto SDK 來構建 ASP.NET Core 的用戶認證流程。教程使用 C# 作為編程語言。
在開始之前,請確保你具備以下條件:
首先,創建一個 Logto 應用程序,選擇 "傳統網頁" 類型。如需創建 Logto 應用程序,請按照以下步驟操作:
然後,你應該會看到一個互動教程,指導你完成和你的 ASP.NET Core 應用程序整合 Logto SDK 的過程。以下內容可供將來參考。
注意,ASP.NET Core 的最低支持版本是 6.0。
打開 Startup.cs(或 Program.cs),並添加以下代碼來註冊 Logto 認證中介軟件:
AddLogtoAuthentication 方法將完成以下操作:
LogtoDefaults.CookieScheme。LogtoDefaults.AuthenticationScheme。LogtoDefaults.AuthenticationScheme。將以下 URI 添加到 Logto 應用程序詳情頁面的 Redirect URIs 列表:
要使用 Logto 登錄,你可以使用 ChallengeAsync 方法:
ChallengeAsync 方法將用戶重定向到 Logto 登錄頁面。
RedirectUri 屬性用於在認證後將用戶重定向回你的網頁應用程序。注意,這與你在 Logto 應用程序詳情頁面配置的重定向 URI 是不同的:
RedirectUri 屬性是 Logto 認證中介軟件中完成必要操作後,將被重定向的 URI。操作順序為 1 -> 2。為清晰起見,我們將 Logto 應用程序詳情頁面的重定向 URI 稱為 Logto 重定向 URI,而 RedirectUri 屬性則稱為 應用程序重定向 URI。
Logto 重定向 URI 的默認值為 /Callback,如果沒有特別要求,可以保持不變。如果你想更改,可以為 LogtoOptions 設置 CallbackPath 屬性:
請記得在 Logto 應用程序詳情頁面中相應更新。
將以下 URI 添加到 Logto 應用程序詳情頁面的 Post sign-out redirect URIs 列表:
要使用 Logto 登出,你可以使用 SignOutAsync 方法:
SignOutAsync 方法將清除認證 cookie 並將用戶重定向到 Logto 登出頁面。
RedirectUri 屬性用於在登出後將用戶重定向回你的網頁應用程序。注意,這與你在 Logto 應用程序詳情頁面配置的登出後重定向 URI 是不同的:
RedirectUri 屬性是 Logto 認證中介軟件中完成必要操作後,將被重定向的 URI。操作順序為 1 -> 2。為清晰起見,我們將 Logto 應用程序詳情頁面的登出後重定向 URI 稱為 Logto 登出後重定向 URI,而 RedirectUri 屬性則稱為 應用程序登出後重定向 URI。
Logto 登出後重定向 URI 的默認值為 /SignedOutCallback,如果沒有特別要求,可以保持不變。如果你想更改,可以為 LogtoOptions 設置 SignedOutCallbackPath 屬性:
請記得在 Logto 應用程序詳情頁面中相應更新。
首先,將處理程序方法添加到你的 PageModel,例如:
然後,將按鈕添加到你的 Razor 頁面(html):
<p>已認證:@User.Identity?.IsAuthenticated</p>
<form method="post">
@if (User.Identity?.IsAuthenticated == true)
{
<button type="submit" asp-page-handler="SignOut">登出</button>
} else {
<button type="submit" asp-page-handler="SignIn">登錄</button>
}
</form>
如果用戶未認證,將顯示 "登錄" 按鈕,如果用戶已認證,將顯示 "登出" 按鈕。
現在你可以運行網頁應用程序,並嘗試使用 Logto 登錄/登出:
如果在整合過程中遇到任何問題,請隨時通過電郵 [email protected] 聯繫我們或加入我們的 Discord 伺服器!