In my startup.cs in the method public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) I want to access the HttpContext.
The reason I want to do this is that I want to redirect a 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 in the above example does not have an HttpContext property. How do I get access to the HttpContext?
You are trying to use UseStatusCodePages(this IApplicationBuilder app, Action configuration) extension method overload.
What you should be using is UseStatusCodePages(this IApplicationBuilder app, Func<StatusCodeContext, Task> handler).
Something like this:
app.UseStatusCodePages(context => {
var request = context.HttpContext.Request;
var response = context.HttpContext.Response;
if (response.StatusCode == (int)HttpStatusCode.Unauthorized)
{
response.Redirect("/account/login");
}
return Task.CompletedTask;
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With