【发布时间】:2019-04-16 22:51:06
【问题描述】:
我的创业公司有这个:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSwaggerWithUi();
app.UseAuthentication();
app.UseMiddleware<SomeMiddleware>();
app.UseMvc();
}
我需要在用户通过身份验证后添加一些额外的声明,但中间件 Invoke 函数总是在 Auth 之前触发(HttpContext.User.Identity.IsAuthenticated 为 false)。但是当它到达控制器时,用户就可以通过身份验证。
知道在这里做什么吗?我尝试在调用app.UseMiddleware 后输入“app.UseAuthentication()”,但没有任何影响。
我目前正在使用多个身份验证方案。我不确定这是否有影响。
【问题讨论】:
-
您找到解决方案了吗?我在完全相同的概率上运行(两个 JWT 方案,没有默认值),而且我也总是让用户在我的中间件中没有经过身份验证。
-
对于那些关注相同问题的人,这个答案解释了为什么会发生这种情况:stackoverflow.com/a/46309119/2689390。所以,我在
app.UseAuthorization()之后移动了我的app.UseMiddleware<SomeMiddleware>();。
标签: c# asp.net-core