diff --git a/websocket-sharp/Net/HttpListener.cs b/websocket-sharp/Net/HttpListener.cs index 13c9df89..b54b41f8 100644 --- a/websocket-sharp/Net/HttpListener.cs +++ b/websocket-sharp/Net/HttpListener.cs @@ -534,23 +534,21 @@ namespace WebSocketSharp.Net var realm = Realm; var req = context.Request; - var user = HttpUtility.CreateUser ( - req.Headers["Authorization"], schm, realm, req.HttpMethod, UserCredentialsFinder); + var user = + HttpUtility.CreateUser ( + req.Headers["Authorization"], schm, realm, req.HttpMethod, UserCredentialsFinder + ); - if (user != null && user.Identity.IsAuthenticated) { - context.User = user; - return true; - } - - if (schm == AuthenticationSchemes.Basic) + if (user == null || !user.Identity.IsAuthenticated) { context.Response.CloseWithAuthChallenge ( - AuthenticationChallenge.CreateBasicChallenge (realm).ToBasicString ()); + new AuthenticationChallenge (schm, realm).ToString () + ); - if (schm == AuthenticationSchemes.Digest) - context.Response.CloseWithAuthChallenge ( - AuthenticationChallenge.CreateDigestChallenge (realm).ToDigestString ()); + return false; + } - return false; + context.User = user; + return true; } internal HttpListenerAsyncResult BeginGetContext (HttpListenerAsyncResult asyncResult)