当我将持有者令牌与受 保护的 AspNetCore 控制器一起使用时,我收到日志消息:[Authorize]
info: Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler[7]
Identity.Application was not authenticated. Failure message: Unprotect ticket failed
我试图理解这意味着什么,以及可能导致这种情况的原因。
Api 的类具有以下设置。Api 使用 AspNet Identity Core。Startup
public 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的原因)。然后,我尝试将令牌与控制器一起使用,我得到了上面提到的错误。
Helenr
catspeake
相关分类