启动时重定向MVC6应用程序

时间:2015-09-27 15:45:49

标签: asp.net-core-mvc

我很想知道如果尚未配置Web应用程序,是否可以重定向用户。

最初我认为这可以在start.cs文件中的Configure方法中完成,但有些事情告诉我这可能是不可能的。

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

1 个答案:

答案 0 :(得分:2)

您可以尝试在管道的开头添加一些中间件。 (您可以查看asp文档的the middleware section以获取概述。This post也非常了解ASP 5中的新中间件功能。

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

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文档中的Writing middlewareMiddleware as a standalone class部分)并在{的开头注册它{1}}方法:

Configure