为了账号安全,请及时绑定邮箱和手机立即绑定

身份验证失败,并且核心 WebApi 的 Asp.Net 取消保护票证失败”

身份验证失败,并且核心 WebApi 的 Asp.Net 取消保护票证失败”

C#
holdtom 2022-09-04 16:34:41
当我将持有者令牌与受 保护的 AspNetCore 控制器一起使用时,我收到日志消息:[Authorize]info: Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler[7]      Identity.Application was not authenticated. Failure message: Unprotect ticket failed我试图理解这意味着什么,以及可能导致这种情况的原因。Api 的类具有以下设置。Api 使用 AspNet Identity Core。Startuppublic void ConfigureServices(IServiceCollection services){    services.AddDbContext<UserAccountDbContext>(options => options.UseSqlServer(connectionString,                                                                                     sql => sql.MigrationsAssembly(MigrationsAssembly)));    services.AddIdentity<UserAccount, IdentityRole>()                    .AddEntityFrameworkStores<UserAccountDbContext>();    services.AddTransient<UserManager<UserAccount>>();    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);    services.AddAuthorization();    services.AddAuthentication("Bearer")            .AddJwtBearer("Bearer", options =>                                             {                                                options.Authority = _configuration.OAuth2.ServerUri;                                                options.RequireHttpsMetadata = false;                                                options.Audience = "api";                                            });        }和:public void Configure(IApplicationBuilder app, IHostingEnvironment env){    if (env.IsDevelopment())    {        app.UseDeveloperExceptionPage();    }    app.UseAuthentication();    app.UseMvc();}对调用方的响应是“未经授权”(401),没有任何解释。编辑:我认为这与评论所建议的cookie有关。我看到一块饼干。我清除了这个并尝试但没有帮助。我认为这可能与我的令牌服务器和Api服务器的设置方式有关(两者都使用AspNet Identity)。Identity.Application我有一个Mvc项目在localhost:5000上作为Idp运行。然后,我的用户管理器 Api 具有受保护的控制器,它托管在 localhost:5001 上。当我尝试访问受保护的控制器时,我被重定向到IdP项目中的登录页面(我认为这是设置cookie的原因)。然后,我尝试将令牌与控制器一起使用,我得到了上面提到的错误。
查看完整描述

2 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

当我在端口 5000 上启动开发服务器时,我还收到“取消保护票证失败”错误消息。在Chrome中,我有很多来自另一个项目的cookie,该项目也运行在5000。已删除所有 Cookie 和错误消息消失。


查看完整回答
反对 回复 2022-09-04
?
catspeake

TA贡献1111条经验 获得超0个赞

当您在两个 Web 服务器之间平衡流量并且尚未将数据保护配置为共享密钥时,可能会发生这种情况。

查看完整回答
反对 回复 2022-09-04
  • 2 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信