使用Azure AD身份验证时,我无法更改Account/AccessDenied
的默认“拒绝访问”路径。我需要配置哪些设置来覆盖此设置?
我看过几篇文章,包括this,但还没有成功。
我当前的startup.cs
代码看起来像这样-
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("AzureAd", options))
.AddCookie(options =>
{
options.AccessDeniedPath = "/Error/AccessDenied";
options.Events = new CookieAuthenticationEvents
{
OnRedirectToAccessDenied = ctx =>
{
var requestPath = ctx.Request.Path;
if (requestPath.StartsWithSegments("/Account"))
{
ctx.Response.Redirect("/Error/AccessDenied?ReturnUrl=" + requestPath + ctx.Request.QueryString);
}
else
{
ctx.Response.Redirect("/Login?ReturnUrl=" + requestPath + ctx.Request.QueryString);
}
return Task.CompletedTask;
}
};
});
此重定向不起作用,也不会触发该事件。我尝试过使用services.ConfigureApplicationCookie
设置cookie选项,但这也不起作用(文档说它仍然是用于身份模块)。
我想念什么? 我的asp.net项目使用的是.net core 2.2,它的模板是从Visual Studio模板生成的。