根据目录支持个人帐户和工作或学校帐户

时间:2019-06-19 21:07:35

标签: authentication asp.net-core azure-ad-b2c razor-pages

我正在构建一个ASP.NET Core Razor网站(2.2版)。网站基本上有两个区域:网站所有者的管理区域和面向客户的区域。目录结构的所有面向客户的页面都位于“页面”文件夹下,所有管理页面都位于名为“ Admin”的子文件夹下。

我想对“ Admin”文件夹下的所有页面使用工作或学校帐户身份验证(单个租户)。这将允许管理员使用其Azure AD帐户登录以管理网站。对于所有其他页面,我想对本地数据存储使用“个人用户帐户”身份验证。

我目前可以使用Azure AD身份验证,但是是否可以基于目录指定两种不同的身份验证机制,“管理员”下的页面将使用Azure AD,而所有其他页面将使用“个人帐户”?

在类似的帖子中,其他人已经给出了答案,但这已经超过4年了,并且没有使用ASP.NET Core,因此请不要通过指向该文章来结束本文章。 (Is it possible to have both Azure AD and Individual Account authentication in one ASP.NET MVC application?

当前,我只是准备好AzureAD代码。

services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
    .AddAzureAD(options => Configuration.Bind("AzureAd", options));

services.AddMvc(options =>
{
    var policy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    options.Filters.Add(new AuthorizeFilter(policy));
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

0 个答案:

没有答案