2015-09-27 2 views
2

Мне интересно узнать, возможно ли перенаправить пользователя, если веб-приложение не настроено.Перенаправить приложение MVC6 при запуске

Первоначально я думал, что это можно сделать в методе Configure в файле start.cs, но что-то говорит мне, что это может быть невозможно.

В настоящее время я проверяю настроенное состояние в моем контроллере входа, но для меня это кажется неаккуратным, и поэтому я ищу лучшее решение, но я продолжаю рисовать пробел. Что сказал, что лучший подход для этого?

+0

Как вы определяете, было ли настроено приложение или нет? –

+0

У меня есть несколько различных проверок базы данных, чтобы определить, установлено ли приложение – Marqueone

ответ

2

Вы можете попробовать добавить некоторое промежуточное ПО в начале конвейера. (Вы можете проверить the middleware section из asp docs для обзора. This post также имеет очень хороший обзор новых функций промежуточного программного обеспечения в ASP 5).

Простой подход может быть добавлением его как встроенного промежуточного программного обеспечения, прежде чем регистрировать конвейер MVC. Обновление Configure метода Startup.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 

Если вам нужна более сложная часть логики, вы можете оформить его в собственном классе промежуточного слоя (См Writing middleware в аспе документации или Middleware as a standalone class раздел) и зарегистрируйте его в начале метода Configure:

app.UseMiddleware<MyWaitForAppStartupMiddleware>();