我很想知道如果尚未配置Web应用程序,是否可以重定向用户。
最初我认为这可以在start.cs文件中的Configure方法中完成,但有些事情告诉我这可能是不可能的。
目前我正在检查我的登录控制器中的配置状态,但对我来说这看起来很草率,因此我正在寻找更好的解决方案,但我一直在画一个空白。那说什么是最好的方法?
答案 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 middleware或Middleware as a standalone class部分)并在{的开头注册它{1}}方法:
Configure