0
在我的startup.cs
中的方法public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
我想訪問HttpContext
。在app.UseStatusCodePages中訪問HttpContext
我想這樣做的原因是我想重定向401 response to a login page。
app.UseStatusCodePages(async context => {
var request = context.HttpContext.Request;
var response = context.HttpContext.Response;
if (response.StatusCode == (int)HttpStatusCode.Unauthorized)
// you may also check requests path to do this only for specific methods
// && request.Path.Value.StartsWith("/specificPath")
{
response.Redirect("/account/login");
}
});
在上述例子context
不具有HttpContext
屬性。我如何訪問HttpContext
?
根據[文檔:配置狀態代碼頁(https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling#configuring -status-code-pages),該代碼應該工作。唯一的問題是,如果不做任何異步操作,則從expression參數中刪除'async'前綴。 – Nkosi
@Nkosi問題是context.HttpContext.Request沒有HttpContext,所以必須有一些更多的安裝程序丟失... – Liam
分號缺失:response.Redirect(「/ account/login」);代碼編譯沒有錯誤。 –