【发布时间】:2022-07-13 20:26:35
【问题描述】:
我正在开发一个 POC,以创建一个 Asp.Net Core 6 Web 应用程序,该应用程序能够通过 Azure AD 身份服务器和自定义本地用户数据库对用户进行身份验证。
我需要创建一个登录页面,用户可以在其中选择两种身份验证方法('/Login/Login')。
当我尝试加载非匿名页面(控制器/操作)时,系统会自动将我重定向到 Microsoft 登录页面,而不是我的自定义页面 (/Login/Login)。
我尝试了一些解决方案,例如:
builder.Services
.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(options => {...}, configureCookieAuthenticationOptions: options =>
{
options.LoginPath = new PathString("/Login/Login");
})
.EnableTokenAcquisitionToCallDownstreamApi(new[] { "user.read" })
.AddInMemoryTokenCaches();
或
builder.Services.ConfigureApplicationCookie(options => {
options.LoginPath = new PathString("/Login/Login");
});
但似乎没有任何效果。
有什么建议吗?
谢谢!
-
谢谢,但他们在那里谈论了 .NET 3/5 API 的身份验证过滤器。我没有看到任何有关用户重定向的信息。我正在考虑制作一个自定义过滤器,但如果有此类功能的选项,我不明白为什么要这样做。 Ps:我忘了提到登录路径仅适用于 AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
-
重定向是“控制器动作”框的一部分。
-
我不明白:您是在谈论直接从控制器操作控制流量而无需任何全局过滤器或控制器/操作过滤器的能力吗?那不是办法。
-
链接中的图片有两个方框。首先用于身份验证,其次用于控制器操作。控制器操作是不属于身份验证的所有内容。