使用 Logto 构建 ASP.NET Core 认证
学习如何通过集成 Logto SDK 来构建一个 ASP.NET Core 的用户认证流程。
学习如何通过集成 Logto SDK 来构建一个 ASP.NET Core 的用户认证流程。
在本教程中,我们将向你展示如何通过集成 Logto SDK 来构建一个 ASP.NET Core 用户认证流程。本教程采用的编程语言为 C#。
在开始前,确保你拥有以下内容:
首先,创建一个「传统网页」类型的 Logto 应用。按照以下步骤创建 Logto 应用:
那么你就应该看到一个交互式教程,引导你将 Logto SDK 集成到你的 ASP.NET Core 应用中。以下内容可以作为你日后参考。
注意,ASP.NET Core 的最低受支持版本是 6.0。
打开 Startup.cs(或 Program.cs),并添加以下代码以注册 Logto 认证中间件:
AddLogtoAuthentication 方法将完成以下事情:
LogtoDefaults.CookieScheme。LogtoDefaults.AuthenticationScheme。LogtoDefaults.AuthenticationScheme。在 Logto 应用详细信息页面的 Redirect URIs 列表中添加以下 URI:
要用 Logto 登录,你可以使用 ChallengeAsync 方法:
ChallengeAsync 方法会将用户重定向到 Logto 登录页面。
RedirectUri 属性用于在认证后将用户重定向回你的网络应用。注意,这与你在 Logto 应用详细信息页面中配置的重定向 URI 是不同的:
RedirectUri 属性是在 Logto 认证中间件中执行必要行动后将重定向的 URI。行动的顺序是 1 -> 2。为了清楚,让我们把 Logto 应用详细信息页面的重定向 URI 称作 Logto 重定向 URI,RedirectUri 属性称作 应用重定向 URI。
Logto 重定向 URI 的默认值为 /Callback,如果没有特殊要求,你可以保持它这个值。如果你想要更改,可以为 LogtoOptions 设置 CallbackPath 属性:
记住,根据情况更新 Logto 应用详细信息页面的值。
在 Logto 应用详细信息页面的 Post sign-out redirect URIs 列表中添加以下 URI:
要用 Logto 登出,你可以使用 SignOutAsync 方法:
SignOutAsync 方法将清除认证 cookie 并将用户重定向到 Logto 登出页面。
RedirectUri 属性用于在登出后将用户重定向回你的网络应用。注意,这与你在 Logto 应用详细信息页面中配置的 post sign-out redirect URI 是不同的:
RedirectUri 属性是在 Logto 认证中间件中执行必要行动后将重定向的 URI。行动的顺序是 1 -> 2。为了清楚,让我们把 Logto 应用详细信息页面的 post sign-out redirect URI 称作 Logto 登出重定向 URI,RedirectUri 属性称作 应用登出重定向 URI。
Logto 登出重定向 URI 的默认值为 /SignedOutCallback,如果没有特殊要求,你可以保持它这个值。如果你想要更改,可以为 LogtoOptions 设置 SignedOutCallbackPath 属性:
记住,根据情况更新 Logto 应用详细信息页面的值。
首先,向你的 PageModel 添加处理函数,例如:
然后,向你的 Razor 页面(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>
如果用户没有认证,它将显示「登录」按钮,如果用户已经认证,它将显示「登出」按钮。
现在你可以运行网页应用并尝试用 Logto 登入/登出:
如果你在集成过程中遇到任何问题,请在 [email protected] 或 加入我们的 Discord 服务器 中通过邮箱联系我们!