title: C# WCF -- Custom Error on Authorization Fail via a custom AuthorizationManager
body: <p>I am currenlty working on implementing a custom WCF OpenAuth AuthenticationManager and I have successfully done so. My problem now however, is the response pages when the user fails to authenticate. I would like for the user to receive a JSON-formatted message with a 401 (Unauthorized) response-status code. However, I get a generic, 400-error response as such:</p>
  
  <pre><code>HTTP/1.1 400 Bad Request
  Server: ASP.NET Development Server/10.0.0.0
  Date: Mon, 20 Jun 2011 17:29:31 GMT
  X-AspNet-Version: 4.0.30319
  Content-Length: 1765
  Cache-Control: private
  Content-Type: text/html
  Connection: Close
  
  &lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
  &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
    &lt;head&gt;
      &lt;title&gt;Request Error&lt;/title&gt;
      &lt;style&gt;BODY { color: #000000; background-color: white; font-family: Verdana; margin-left: 0px; margin-top: 0px; } #content { margin-left: 30px; font-size: .70em; padding-bottom: 2em; } A:link { color: #336699; font-weight: bold; text-decoration: underline; } A:visited { color: #6699cc; font-weight: bold; text-decoration: underline; } A:active { color: #336699; font-weight: bold; text-decoration: underline; } .heading1 { background-color: #003366; border-bottom: #336699 6px solid; color: #ffffff; font-family: Tahoma; font-size: 26px; font-weight: normal;margin: 0em 0em 10px -20px; padding-bottom: 8px; padding-left: 30px;padding-top: 16px;} pre { font-size:small; background-color: #e5e5cc; padding: 5px; font-family: Courier New; margin-top: 0px; border: 1px #f0f0e0 solid; white-space: pre-wrap; white-space: -pre-wrap; word-wrap: break-word; } table { border-collapse: collapse; border-spacing: 0px; font-family: Verdana;} table th { border-right: 2px white solid; border-bottom: 2px white solid; font-weight: bold; background-color: #cecf9c;} table td { border-right: 2px white solid; border-bottom: 2px white solid; background-color: #e5e5cc;}&lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;div id="content"&gt;
        &lt;p class="heading1"&gt;Request Error&lt;/p&gt;
        &lt;p xmlns=""&gt;The server encountered an error processing the request. Please see the &lt;a rel="help-page" href="http://localhost:2947/user/help"&gt;service help page&lt;/a&gt; for constructing valid requests to the service.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>I'd really like to get something more like the following:</p>
  
  <pre><code>HTTP/1.1 200 OK
  Server: ASP.NET Development Server/10.0.0.0
  Date: Mon, 20 Jun 2011 15:35:12 GMT
  X-AspNet-Version: 4.0.30319
  Content-Length: 265
  Cache-Control: private
  Content-Type: application/json; charset=utf-8
  Connection: Close
  
  {"result":{"error":"Unable to authenticate using provided OAuth credentials"}}
  </code></pre>
  
  <p>I am implementing my auth-service by extending the ServiceAuthorizationManager and creating a custom WebServiceHostFactory that injects my auth-manager. </p>
  
  <p>Any help is greatly appreciated!</p>