Asp.net core mvc 启动时重定向MVC6应用程序

Asp.net core mvc 启动时重定向MVC6应用程序,asp.net-core-mvc,Asp.net Core Mvc,我想知道,如果没有配置web应用程序,是否有可能重定向用户 起初我认为这可以在start.cs文件中的Configure方法中完成,但有消息告诉我这可能不可能 目前,我正在检查登录控制器中的配置状态,但对我来说,这似乎是草率的,因此我正在寻找更好的解决方案,但我一直在画空白。也就是说,最好的方法是什么?您可以尝试在管道的开头添加一些中间件。(您可以查看asp文档的概述,也可以很好地概述asp 5中的新中间件功能) 一种简单的方法是在注册MVC管道之前,将其添加为内联中间件。将启动.cs的配置方法

我想知道,如果没有配置web应用程序,是否有可能重定向用户

起初我认为这可以在start.cs文件中的Configure方法中完成,但有消息告诉我这可能不可能


目前,我正在检查登录控制器中的配置状态,但对我来说,这似乎是草率的,因此我正在寻找更好的解决方案,但我一直在画空白。也就是说,最好的方法是什么?

您可以尝试在管道的开头添加一些中间件。(您可以查看asp文档的概述,也可以很好地概述asp 5中的新中间件功能)

一种简单的方法是在注册MVC管道之前,将其添加为内联中间件。将启动.cs的
配置
方法更新为:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.Use(async (context, next) =>
    {
        if (!YourWayOfCheckingIfAppIsConfigured())
        {
            //redirect to another location if not ready
            context.Response.Redirect("/Home/NotReady");
            return;
        }

        //app is ready, invoke next component in the pipeline (MVC)
        await next.Invoke(context);
    });

    ... configure MVC
如果需要更复杂的逻辑,可以将其封装在自己的中间件类中(请参见asp文档或部分),并在
Configure
方法的开头注册:

app.UseMiddleware<MyWaitForAppStartupMiddleware>();
app.UseMiddleware();

如何确定应用程序是否已配置?我对数据库进行了两次不同的检查,以确定应用程序是否已设置