我通過本教程使用 Microsoft 身份平臺創建了一個 Blazor 服務器應用程式:使用 Azure AD 進行 Blazor 服務器應用程式身份驗證
我的應用應該是公司的一個小工具,純內部使用。用戶將能夠創建和管理事件。由于它實際上只供少數人使用,因此我計劃將用戶的姓名或電子郵件地址存盤在資料庫中,以根據資料庫的用戶 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 身份驗證和授權,我可以在其他任何地方獲取電子郵件地址。
哪里是查詢用戶的最佳位置?
uj5u.com熱心網友回復:
我認為你可以這樣做_Host.cshtml.cs:
using Microsoft.AspNetCore.Mvc.RazorPages;
public void Onget(){
var email= Request.HttpContext.User.Identity.Name;
//Your query to the database
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/424374.html
