В итоге я создал промежуточное программное обеспечение Owin, которое фиксирует ошибку, генерируемую недействительными метаданными, которая выглядит следующим образом, и перенаправляет пользователя на маршрут, описывающий проблему:
public class LoggingMiddleware : OwinMiddleware
{
public LoggingMiddleware(OwinMiddleware next)
: base(next)
{
}
public async override Task Invoke(IOwinContext context)
{
try
{
await Next.Invoke(context);
} catch(Exception e)
{
Logger.Error($"Encountered error in authenticating {e.ToString()}");
if(e.Source.Equals("Microsoft.IdentityModel.Protocols"))
{
context.Response.Redirect("/Home/OwinError");
} else
{
throw e;
}
}
}
}
Промежуточное программное обеспечение может быть просто добавлено в файл startup.cs со следующей строкой:
app.Use(typeof(LoggingMiddleware));