From f5747717240b9ff79fcb47c8b999b86cefadc39b Mon Sep 17 00:00:00 2001 From: sta Date: Wed, 12 May 2021 19:40:17 +0900 Subject: [PATCH] [Modify] Add it --- websocket-sharp/Net/HttpListener.cs | 37 +++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/websocket-sharp/Net/HttpListener.cs b/websocket-sharp/Net/HttpListener.cs index 0829fe2d..1739b008 100644 --- a/websocket-sharp/Net/HttpListener.cs +++ b/websocket-sharp/Net/HttpListener.cs @@ -562,6 +562,43 @@ namespace WebSocketSharp.Net #region Internal Methods + internal bool AuthenticateContext (HttpListenerContext context) + { + var req = context.Request; + var schm = SelectAuthenticationScheme (req); + + if (schm == AuthenticationSchemes.Anonymous) + return true; + + if (schm == AuthenticationSchemes.None) { + context.ErrorStatusCode = 403; + context.ErrorMessage = "Authentication not allowed"; + + context.SendError (); + + return false; + } + + var realm = GetRealm (); + var user = HttpUtility.CreateUser ( + req.Headers["Authorization"], + schm, + realm, + req.HttpMethod, + _userCredFinder + ); + + if (user == null || !user.Identity.IsAuthenticated) { + context.SendAuthenticationChallenge (schm, realm); + + return false; + } + + context.User = user; + + return true; + } + internal HttpListenerAsyncResult BeginGetContext ( HttpListenerAsyncResult asyncResult )