如何在首次使用 AzureAD 登录期间保存用户配置文件信息



我正在学习如何实现AzureAD登录。我创建了一个使用 Azure AD 身份验证的示例 Blazor 项目(通过 Visual Studio 模板(。我想了解如何在首次登录后读取一些用户信息(姓名(并保存。

我注意到项目模板不使用 ASP.NET 核心标识。这可能很好,因为我想使用我的工作帐户登录。

这是相对于 AzureAD 的启动.cs代码

services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options));
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});

似乎在用户登录后会调用任何东西。 我想实现的是重定向到某个地方(控制器/blazer页面(,我可以在其中检查我是否已保存此用户。

一种可能的解决方案是自定义用户。

CreateUserAsync方法中,您可以检查数据存储中是否存在用户,如果不存在,请添加他们。

对于服务器端,我还使用OpenIdConnect来响应授权后事件。

services.AddAuthentication(auth =>
{
auth.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
auth.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
auth.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
Configuration.Bind("OpenIdConnect", options);
options.Events = new OpenIdConnectEvents
{
OnAuthorizationCodeReceived = async ctx =>
{
// Do some stuff here
}
}
};
});

相关内容

  • 没有找到相关文章

最新更新