[英]Configure log4net AdoNetAppender in asp.net core application
[英]Is there a mandatory order of statements in the Configure method of a ASP.NET Core application?
前言:
我花了整个下午试图理解为什么我的应用程序总是对我的请求返回401 未经授权的响应。
经过多次挖掘,拉头发和咒骂,我遇到了这个问题,以及这个答案:
把
app.UseAuthentication();
在app.UseAuthorization();
之前app.UseAuthorization();
解决了这个问题。
就我而言,我看到我仍然收到一些 CORS 错误(如果我删除了[Authorize]
属性,则不会发生这种情况),所以我移动了app.UseCors(AllowSpecificOriginsPolicy);
首先,一切正常!
工作顺序是:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseCors(AllowSpecificOriginsPolicy); // this one first
app.UseAuthentication(); // this one second
app.UseAuthorization(); // this one third
...
}
题:
我的问题是,我们怎么知道这里的正确顺序是什么?
它是写在文档中的某个地方还是您只是通过反复试验才找到的?
此信息最近以示例Configure
实现的形式添加到docs中:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); // app.UseCookiePolicy(); app.UseRouting(); // app.UseRequestLocalization(); // app.UseCors(); app.UseAuthentication(); app.UseAuthorization(); // app.UseSession(); app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); }
注意:
使用个人用户帐户创建新 Web 应用程序时未添加的中间件已注释掉。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.