dgcipp
dgcipp

Reputation: 339

Azure Handle custom HTTP 401

I have a web service with basic auth (via custom database check in code) that returns HTTP 401 + SOAP FAULT message when user credentials are wrong. This works in my local IIS 7 but not in Azure...

When I move it to Azure, via App Service, and I insert bad credentials, I always get the following message:

HTTP 401 
"You do not have permission to view this directory or page.".

But I want my custom error message in SOAP Fault format!

After hours of research I have found that if my code returns a response with HTTP 401 status, Azure translate this to the end-user like the message above, ignoring my custom error message.

I made another example with a "hello world" SOAP endpoint:

    [WebMethod]
    public string HelloWorld()
    {
        HttpContext.Current.Response.StatusCode = 401;
        return "Hello world";
    }

In my local IIS I got HTTP 401 "Hello world", but when I deploy this to Azure I got the same "Yout do not have permissions..."

¿How can I disable/avoid/dodge Azure 401 message transformation and return my own custom error message (SOAP FAULT)?

Note: I've already tried to disable authentication in Azure app service, enabling with "allow anonymous requests", etc.

Solution

The problem was in IIS. Adding the following line to my web.config works.

<httpErrors existingResponse="PassThrough" />

More info: https://stackoverflow.com/a/47307706/3763467

I will keep the same title/tags for other people facing the same problem and thinks the problem is in Azure.

Upvotes: 0

Views: 208

Answers (1)

Bryan Trach-MSFT
Bryan Trach-MSFT

Reputation: 850

It sounds like your web.config file might be setup to have custom errors turned on.

Can you please check your web.config file and set customer errors to on?

<customErrors="off" />

Upvotes: 1

Related Questions