在ASP.NET Core 3.0中,可以通过自定义策略来控制用户是否可以访问某个页面或资源。如果用户不在策略中,可以返回自定义的错误页面。
以下是一个使用ASP.NET Core 3.0的示例代码,演示如何返回自定义错误页面:
UseStatusCodePagesWithReExecute
中间件,以便在发生错误时重定向到自定义错误页面。在Configure
方法中添加以下代码:app.UseStatusCodePagesWithReExecute("/error/{0}");
ErrorController.cs
的控制器,用于处理错误页面请求。在控制器中添加以下代码:using Microsoft.AspNetCore.Mvc;
public class ErrorController : Controller
{
[Route("/error/{statusCode}")]
public IActionResult HttpStatusCodeHandler(int statusCode)
{
switch (statusCode)
{
case 404:
ViewBag.ErrorMessage = "抱歉,页面未找到";
break;
// 添加其他错误处理逻辑
}
return View("Error");
}
}
Error.cshtml
的视图文件,用于显示错误信息。在视图文件中添加以下代码:
Error
Error
@ViewBag.ErrorMessage
现在,当用户尝试访问不在策略中的页面时,将重定向到自定义错误页面,并显示相关的错误信息。
请注意,上述代码中的错误处理逻辑仅包含404错误的示例。您可以根据需要扩展该代码,以处理其他类型的错误。