Search code examples
asp.net-coreiiswindows-authentication

Custom status code page with Windows Authentication


I've project in ASP NET Core 3.1 with Windows Authentication. I would like to use custom error code page. This a basic example.

In HomeController :

 [Route("/Error/401")]
    public IActionResult StatusCode401()
    {
        HttpContext.Response.StatusCode = 401;
        return View("ErrorUnauthorized");
    }

But when I call StatusCode401 method, Windows prompt dialog (login, password) appears, if I cancel it, I see my custom view. If I disable Windows Authentication, it's works fine.

How disable Windows prompt dialog when I use Windows Authentication ?

Thanks


Solution

  • You can open the web.config,

    And then find the statusCode 401, change the responseModel from ExecuteURL to File

    <system.webServer>
        <httpErrors errorMode="Custom" >
            <error statusCode="403" subStatusCode="0" prefixLanguageFilePath="" path="***" responseMode="ExecuteURL" />
            <error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="***" responseMode="File" />
            ....
        </httpErrors>
    </system.webServer>