As you can see this is a question from a none web developer. I would like to have an aspx page which, under certain circumstances, can generate a 401 error from code.Ideally it would show the IIS standard page. Any ideas are welcome.
You should be able to just use the following, according to MSDN.
Throw New HttpException(401, "Auth Failed")
Edit After seeing the other responses setting the status code would be more appropriate.
Set Response.StatusCode and then - if you need to stop execution - call Response.End().
I think I still prefer:
throw new HttpException(401, "Auth Failed")
I don't think the Response.StatusCode
method triggers custom errors defined in the web.config file, e.g.
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="401" redirect="AuthFailed.htm" />
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
Throwing a new exception definitely triggers custom errors.
Also, you might be using an application-wide error logging facility, like ELMAH or something, and I don't think the Response.StatusCode
method would be logged there, either.
Note: I see now the question said that, ideally, the standard IIS error page should be shown. Obviously, the custom error pages are not wanted. I would use the Response.StatusCode
method in that case.