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

C# 如何在ASP.NET中强制执行HTTP错误?,c#,asp.net,http,C#,Asp.net,Http,IDE: Visual Studio 2013终极版 语言:C#ASP.NET网页(aspx) 问题:嗨!我有一个学校作业,我正在使用ASP.NET(C#)制作一个网站,我需要添加3个自定义错误。 我知道如何强制404错误(页面未找到)和500错误(页面代码隐藏错误),但我需要第三个错误,我不知道我可以强制哪些错误 在我的导航菜单中,我有一个指向“404page.aspx”的href,但我的解决方案中不存在该href,因此我得到了404错误。 在菜单中,我还有一个指向“500error.aspx

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

在我的导航菜单中,我有一个指向“404page.aspx”的href,但我的解决方案中不存在该href,因此我得到了404错误。
在菜单中,我还有一个指向“500error.aspx”的href,在后面的代码(“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>
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强制执行该错误。

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

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

HTTP 403本质上是告诉您没有访问页面的权限。@DavidG我知道403的作用,但如何强制执行?因此,如果我对名为“300error.aspx”的新页面进行href,但在页面上加载的代码中,这将强制执行403错误?理论上是的(虽然我可能称之为
403error.aspx
而不是300!)对300error.aspx进行了href,并将您的代码放在页面上,但它给出了此错误:“CeeLearnAndDo.dll中发生了'System.Web.HttpException'类型的异常,但未在用户代码中处理”eventho我的Web中有此错误。Configtry 401(未经授权)@KevinKraaijvanger我怀疑它正在工作,但是你的配置没有捕捉到它。通过将URL放入Fiddler来证明它,并查看你得到的HTTP结果。