如何在 Program.cs ASP.Net core 6 中找不到 return

How to return not found in Program.cs ASP.Net core 6

我已经尝试提高我网站的安全性,并且我尝试过的其中一件事是当用户不是管理员并且想要访问管理员页面时,系统 returns NotFound。这使得黑客不可能知道您的管理页面。但是怎么做呢? 这就是我尝试过的。我在 program.cs 中制作了一个中间件来检查 URL 并重定向到某处,这不是我想要的。即使我尝试将状态代码设置为 404,但这也不起作用。我想在这里访问的是 return NotFound (); 方法。有没有办法做到这一点。谢谢

app.Use (async (context, next) =>
{
    if (context.Request.Path.StartsWithSegments ("/Admin"))
    {
        if (/* Checking if user is not admin */)
        {
            // context.Response.Redirect ("/");
            // The code to do same as return NotFound ();
        }
    }
    await next.Invoke ();
});
// Write response
context.Response.StatusCode = ((int)HttpStatusCode.NotFound);

return;

还有一个更好的方法我意识到不需要使用 Microsoft.Net:

context.Response.StatusCode = 404;
return;