我有一个 IdentityServer4 实例,我试图在 nginx 代理后面的 Docker 容器中运行它。我已经基于 Git 存储库中的 AspNet 身份示例,但是在用户成功注册新帐户后,我从 IdentityServer 收到“发生错误”并且日志显示
[07:46:39 ERR] An unhandled exception has occurred: sub claim is missing
System.InvalidOperationException: sub claim is missing
at IdentityServer4.IdentityServerPrincipal.AssertRequiredClaims(ClaimsPrincipal principal
at IdentityServer4.Hosting.IdentityServerAuthenticationService.AugmentPrincipal(ClaimsPrincipal principal
at IdentityServer4.Hosting.IdentityServerAuthenticationService.<SignInAsync>d__7.MoveNext
我的 Startup.cs 看起来像这样
var migrationsAssembly = typeof(Startup).GetTypeInfo().Assembly.GetName().
var connectionString = Configuration.GetConnectionString("DefaultConnection");
var issuerUri = Configuration.GetSection("IssuerUri").Value;
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddTransient<IEmailSender, EmailSender>();
services.AddMvc();
services.AddCors(o => o.AddPolicy("CorsPolicy", b =>
{
b.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
services.AddIdentityServer(options =>
{
options.IssuerUri = issuerUri;
options.PublicOrigin = …Run Code Online (Sandbox Code Playgroud)