如何在ASP.NET中强制执行HTTP错误

本文关键字:强制执行 HTTP 错误 NET ASP | 更新日期: 2023-09-27 18:28:46

IDE:Visual Studio 2013旗舰版
语言:C#ASP.NET网页(aspx)
问题:嗨!我有一份学校作业,我正在使用ASP.NET(C#)制作一个网站,我需要添加3个自定义错误。我知道如何强制404错误(找不到页面)和500错误(页面后面的代码错误),但我需要第三个错误,我不知道我可以强制哪些错误。

在我的导航菜单中,我有一个href到"404page.aspx",但在我的解决方案中不存在,所以我得到了404错误
在菜单中,我还有一个href到"500error.aspx",后面的代码中有错误的代码("500error.aspx.cs"),所以我得到了500错误。

Web.Config文件:

<customErrors mode="On" defaultRedirect="Error.aspx">
  <error statusCode="404" redirect="Error.aspx?error=404"/>
  <error statusCode="500" redirect="Error.aspx?error=500"/>
  <error statusCode="x" redirect="Error.aspx?error=x"/>
</customErrors>

Error.aspx(代码隐藏错误.aspx)文件:

protected void Page_Load(object sender, EventArgs e)
    {
        LabelResult.Text = "";
            String errorcode = Request.QueryString.Get("error"); 
            if (errorcode.ToString().Equals("404"))
            {
                LabelResult.Text = "Page contains a 404 error.";
            }
            if (foutcode.ToString().Equals("500"))
            {
                LabelResult.Text = "Page contains a 500 error.";
            }
    }

因此,基本上我需要第三个HTTP错误,我可以使用C#或ASP.NET强制执行。

如何在ASP.NET中强制执行HTTP错误

您要么需要访问一个没有权限查看的页面,要么手动在代码中抛出自己的错误:

throw new HttpException(403, "Access denied");