【发布时间】:2020-10-26 09:36:39
【问题描述】:
由于我使用 app.UseAuthorization() 进行自动身份验证,它还阻止了一些错误检查 api 和我自定义的 404 未找到页面。例如,当我尝试访问不是真实 URL 的 localhost/RouteNotExist 时,它应该返回一个 404 页面而不是将我重定向到 /Account/Login。有没有办法解决这个问题,或者我不应该使用 UseAuthorization()?
编辑:这是我的配置方法:
public virtual void Configure(IApplicationBuilder app)
{
app.UseNewRelicLowerCasePath();
app.UseCustomExceptionHandler();
app.UseCustomStatusCodePagesWithReExecute();
app.UseForwardedHeaders();
app.UseWebOptimizer();
app.UseStaticFiles();
app.UseRouting();
app.UseIdentityServer();
app.UseCookiePolicy();
app.UseAuthentication();
app.UseSession();
app.UseCustomSession();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
});
}
public static IApplicationBuilder UseCustomExceptionHandler(this IApplicationBuilder app)
{
app.UseWhen(context => !IsApi(context),
builder => { builder.UseExceptionHandler("/Home/Error"); });
app.UseWhen(context => IsApi(context),
builder => { builder.UseExceptionHandler("/api/error/500"); });
return app;
}
isApi() 方法返回一个布尔值,表示 url 是否以“/api”开头。
【问题讨论】:
-
请添加您的
Configure方法。 -
刚刚添加了我的配置方法。
-
请
UseCustomExceptionHandler。 -
谢谢,我做了,但还是不行。
-
请加
UseCustomExceptionHandler代码。
标签: .net asp.net-mvc identityserver4 razor-pages