You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core身份验证处理程序未注册错误求助

ASP.NET Core身份验证处理程序未注册错误求助

嘿,我看你在野外碰到这个棘手的身份验证错误了,别慌,咱们一步步拆解问题解决它!

先把你遇到的错误信息贴出来,方便定位问题:

System.InvalidOperationException: No authentication handler is registered for the scheme 'You do not have permission to access this resource.'. The registered schemes are: Negotiate, Windows. Did you forget to call AddAuthentication().Add[SomeAuthHandler]("You do not have permission to access this resource.",...)?

问题分析

你看错误里提到的scheme居然是You do not have permission to access this resource.——这明显是个权限提示文本,根本不是合法的身份验证scheme名称!这说明你的代码配置里肯定出了逻辑混乱的问题。再看你贴的Program.cs代码,发现你重复调用了两次AddAuthorization,第二次调用会直接覆盖第一次的配置,这种重复配置很容易导致意外的错误关联。

解决方案

咱们把重复的授权配置合并,同时确保身份验证和授权的配置逻辑清晰,步骤如下:

  1. 合并AddAuthorization的配置,只调用一次,把默认策略和回退策略放在同一个配置块里
  2. 确保身份验证scheme使用正确的NegotiateDefaults.AuthenticationScheme
  3. 记得在请求管道里按顺序添加UseAuthentication和UseAuthorization(你的代码里没贴全这部分,一定要注意顺序)

修正后的Program.cs代码示例:

using Microsoft.AspNetCore.Authentication.Negotiate;
using Microsoft.AspNetCore.Authorization;

// 身份验证配置
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme)
    .AddNegotiate();

// 合并授权配置,只调用一次AddAuthorization
builder.Services.AddAuthorization(options =>
{
    // 配置默认策略:要求用户已认证
    options.DefaultPolicy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    // 回退策略和默认策略保持一致
    options.FallbackPolicy = options.DefaultPolicy;
});

builder.Services.AddHttpContextAccessor();

var app = builder.Build();

// 配置请求管道,注意顺序:先认证,再授权
if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}

app.UseHttpsRedirection();
app.UseRouting();

// 关键:先启用身份验证,再启用授权
app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();

app.Run();

为什么这样改能解决问题?

  • 重复调用AddAuthorization会导致后一次的配置完全覆盖前一次,很容易出现逻辑冲突,合并后配置更清晰可控
  • 错误里的奇怪scheme大概率是重复配置导致的意外关联,合并后就能避免这种问题
  • 请求管道里UseAuthentication必须在UseAuthorization之前,这样才能先完成用户身份验证,再进行授权判断

备注:内容来源于stack exchange,提问作者Mansoor Saleem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:55:28