В моем файле startup.cs в моем методе настройки у меня есть следующее:
public void Configure(IApplicationBuilder app)
{
if (HostingEnvironment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
//TODO: Create an exception handler controller...
app.UseExceptionHandler("/Home/Error");
}
// app.UseRewriter(new RewriteOptions().AddRedirectToHttpsPermanent()); //required to force URL to https
app.UseStaticFiles();
app.UseSession();
app.UsePartialPageRendering();
app.Use(async (context, next) =>
{
await next.Invoke();
if (context.Response.StatusCode == 401)
{
context.Response.Redirect("/user/sign-in");
}
});
app.UseMvc();
// Log the environment so we can tell if it is correct.
Logger.LogInformation($"Hosting environment: {HostingEnvironment.EnvironmentName}");
}
Затем в фильтре авторизации у меня есть некоторый код, и в некоторых условиях у меня есть:
var authorisationCookie = _httpContext.HttpContext.Request.Cookies.Where(t => t.Key == "aut").FirstOrDefault();
//no valid cookie
if (authorisationCookie.Key == null)
{
//Kill the pipeline so that view doesn't get displayed.
context.Result = new UnauthorizedResult(); //should be this, but trouble handling it client side.
return;
}
Когда эта строка нажата, если я использую инструменты разработчика Google, я вижу, что 401 возвращается правильно, но мой конвейер выше никогда не попадет.Как мне нужно изменить это так, чтобы каждый раз, когда 401 вызывался из моего приложения, происходило перенаправление?