gpt4 book ai didi

c# - Blazor 在使用 Microsoft Identity Platform 登录后执行代码

转载 作者:行者123 更新时间:2023-12-03 02:16:34 24 4
gpt4 key购买 nike

我通过本教程使用 Microsoft Identity Platform 创建了一个 Blazor 服务器应用程序:Blazor Server App Authentication with Azure AD

我的应用应该是公司的一个小工具,纯内部使用。用户将能够创建和管理事件。由于它实际上只有少数人使用,因此我计划将用户的姓名或电子邮件地址存储在数据库中,以便根据数据库的用户 ID 显示登录者的正确事件。不必再处理 Azure AD。

为了实现这一点,每次有人登录时,我都必须查询该电子邮件地址是否已在数据库中,如果没有,则创建一个新条目。

我的问题是哪里是执行此查询的最佳位置。

我的第一个想法是在 LoginDisplay.razor 中执行此操作

<AuthorizeView>
<Authorized>
<a href="MicrosoftIdentity/Account/SignOut">Log out</a>
Hello, @context.User.Identity?.Name!
</Authorized>
<NotAuthorized>
<a href="MicrosoftIdentity/Account/SignIn">Log in</a>
</NotAuthorized>
</AuthorizeView>

在这里,我可以添加一个在有人登录时执行的方法。context.User.Identity?.Name 为我提供了我需要的电子邮件地址。但如果我将其放入 OnInitializedAsync() 中,则每次加载页面时都会进行检查。

在此页面上使用此代码:ASP.NET Core Blazor authentication and authorization ,我可以在其他地方获取电子邮件地址。

哪里是查询用户的最佳位置?

最佳答案

我认为你可以在_Host.cshtml.cs中做到这一点:

using Microsoft.AspNetCore.Mvc.RazorPages;

public void Onget(){
var email= Request.HttpContext.User.Identity.Name;
//Your query to the database
}

关于c# - Blazor 在使用 Microsoft Identity Platform 登录后执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71047062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com