You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使Microsoft.AspNetCore.Authorization.AuthorizeAttribute返回401,而不是重定向到登录页面。

要使Microsoft.AspNetCore.Authorization.AuthorizeAttribute返回401而不是重定向到登录页面,你可以使用自定义的授权策略来替代默认的授权策略。以下是一个示例的解决方法:

  1. 创建一个自定义的授权策略类,继承自IAuthorizationHandler接口,并实现其HandleAsync方法。在该方法中,你可以检查用户是否已通过身份验证,并根据需要设置授权结果。
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc.Filters;

public class CustomAuthorizationHandler : IAuthorizationHandler
{
    public Task HandleAsync(AuthorizationHandlerContext context)
    {
        foreach (var requirement in context.Requirements)
        {
            var filterContext = (AuthorizationFilterContext)requirement.Resource;
            if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
            {
                filterContext.HttpContext.Response.StatusCode = 401;
                context.Succeed(requirement);
            }
        }
        
        return Task.CompletedTask;
    }
}
  1. Startup.cs文件中,注册自定义的授权策略类。
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.DependencyInjection;

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();

    // 注册自定义的授权策略
    services.AddSingleton<IAuthorizationHandler, CustomAuthorizationHandler>();

    // 添加默认的策略授权
    services.AddAuthorization(options =>
    {
        options.DefaultPolicy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .Build();
    });
}

public void Configure(IApplicationBuilder app)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers()
            .RequireAuthorization(); // 应用授权策略
    });
}

在上述示例中,我们创建了一个名为CustomAuthorizationHandler的自定义授权策略类,并在其中检查用户是否已通过身份验证。如果用户未经身份验证,则将响应状态码设置为401,并通过context.Succeed(requirement)方法设置授权结果为成功。

然后,在Startup.cs文件的ConfigureServices方法中,我们将自定义的授权策略类注册为IAuthorizationHandler服务。然后,我们使用AddAuthorization方法添加了一个默认的策略授权,要求用户必须经过身份验证。

最后,在Configure方法中,我们使用RequireAuthorization方法将授权策略应用MapControllers端点。这将使Microsoft.AspNetCore.Authorization.AuthorizeAttribute使用我们自定义的授权策略。

这样,当用户未经身份验证时,Microsoft.AspNetCore.Authorization.AuthorizeAttribute将返回401状态码,而不是重定向到登录页面。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

使Microsoft.AspNetCore.Authorization.AuthorizeAttribute返回401,而不是重定向到登录页面。-优选内容

基于OAuth2.0的单点登录配置
火山引擎支持使用标准的OAuth2.0协议的完成授权来实现单点登录。OAuth2.0仅支持用户SSO的方式。 基本概念 概念 说明 授权端点 由身份提供方(IDP)提供,用于获取授权的终端Https URL,用户访问时将通过此端点完成身份认证 访问令牌(Access Token) 由身份提供方(IDP)颁发的访问令牌,通过此令牌和授权范围可访问用户的信息来实现SSO。OAuth2.0协议中支持使用授权码许可类型(Authorization Code)隐式许可类型(Implicit)等方式获取。火...
场景搭建(iOS)
showWithMessage:@"登录小游戏失败" view:self.view]; return; } [wself.iSudAPP destroyMG]; wself.iSudAPP = nil; wself.iSudAPP = [SudMGP loadMG:[LocalUser... 请重试"]; } }]; } else if (status == GameRoomBottomStatusMic) { [SystemAuthority authorizationStatusWithType:AuthorizationTypeAudio block:^(BOOL isAuthorize) { ...
文档预览概述
使用限制类别 使用限制 文件类型 仅支持预览以下文件类型: 演示文件:pptx、ppt。 文字文件:docx、doc。 表格文件:xlsm、xls。 注意 仅支持预览 Microsoft Office 文件,如果您使用的是 WPS 等软件生成的文件,... x-tos-process=doc-preview&x-tos-src-type=docx&x-tos-dst-type=jpg&x-tos-doc-page=1 HTTP/1.1Host: endpointX-Tos-Content-Sha256: sha256X-Tos-Date: 20220827T132948ZAuthorization: authorization使用文件 U...

使Microsoft.AspNetCore.Authorization.AuthorizeAttribute返回401,而不是重定向到登录页面。-相关内容

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询