private bool CheckAuthorization(string authorization_token, AccessControlInfo acinfo)
        {
            if (!acinfo.AuthorizationRequired || acinfo.AuthenticationKey == null)
            {
                return(true);
            }
            if (authorization_token == null)
            {
                return(false);
            }
            var authorized = false;

            try {
                var token = System.Text.Encoding.ASCII.GetString(Convert.FromBase64String(authorization_token));
                var idx   = token.IndexOf(':');
                if (idx >= 0)
                {
                    var user = token.Substring(0, idx);
                    var pass = token.Substring(idx + 1);
                    authorized = acinfo.CheckAuthorization(user, pass);
                }
            }
            catch (FormatException) {
            }
            catch (ArgumentException) {
            }
            return(authorized);
        }
        public bool CheckAuthotization(string auth)
        {
            if (!accessControl.AuthorizationRequired || accessControl.AuthenticationKey == null)
            {
                return(true);
            }
            if (auth == null)
            {
                return(false);
            }
            var authorized = false;

            try {
                var authorization = System.Text.Encoding.ASCII.GetString(Convert.FromBase64String(auth)).Split(':');
                if (authorization.Length >= 2)
                {
                    var user = authorization[0];
                    var pass = String.Join(":", authorization.Skip(1).ToArray());
                    authorized = accessControl.CheckAuthorization(user, pass);
                }
            }
            catch (FormatException) {
            }
            catch (ArgumentException) {
            }
            return(authorized);
        }