使用没有身份的Azure AD身份验证时无法更改“访问被拒绝的路径”

时间:2019-04-09 18:23:35

标签: .net-core asp.net-core-2.2

使用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模板生成的。

0 个答案:

没有答案