gpt4 book ai didi

c# - AuthorizeFilter 失败时如何返回 403 而不是重定向到拒绝访问

转载 作者:行者123 更新时间:2023-12-02 07:26:22 27 4
gpt4 key购买 nike

在 Startup.ConfigureServices() 中,我配置授权过滤器,如下所示:

services.AddMvc(options =>
{
options.Filters.Add(new AuthorizeFilter(myAuthorizationPolicy));
})

我根据配置使用 cookie 身份验证或 AAD 身份验证:

if (useCookieAuth)
{
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie();
}
else
{
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options => Configuration.Bind("Authentication:AzureAd", options));
}

现在,当我访问页面并且 myAuthorizationPolicy 失败时,我会被重定向到“Account/AccessDenied?ReturnUrl=%2F”,但我想返回 403。

最佳答案

看来您必须重写 OnRedirectToAccessDenied

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options => {
options.Events.OnRedirectToAccessDenied = context => {
context.Response.StatusCode = 403;
return Task.CompletedTask;
};
});

关于c# - AuthorizeFilter 失败时如何返回 403 而不是重定向到拒绝访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54461127/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com