Beispiel #1
0
        protected void Validate(HttpActionContext actionContext)
        {
            if (!ConfigurationManager.ValidarCliente)
            {
                return;
            }

            var requestToken = GetTokenFromHeader(actionContext);

            if (String.IsNullOrWhiteSpace(requestToken))
            {
                throw new SecurityException("Não foi identificado o token de autenticação na requisição.");
            }

            String credentials;

            try {
                credentials = TextHelper.Base64Decode(requestToken);
            } catch {
                throw new SecurityException("Token de autenticação inválido.");
            }

            var separator = credentials.IndexOf(':');
            var user      = credentials.Substring(0, separator);
            var password  = credentials.Substring(separator + 1);

            if (user != ConfigurationManager.UsuarioCliente || password != ConfigurationManager.SenhaCliente)
            {
                throw new SecurityException("O usuário e(ou) senha contidos no token de autenticação é(são) inválido(s).");
            }
        }
        protected string RemoveTagWithBase64(string input, string startTag, string endTag, string markdown)
        {
            int startTagPos = input.IndexOf(startTag, 0, StringComparison.CurrentCultureIgnoreCase);

            if (startTagPos < 0)
            {
                return(input);
            }

            int startTagClosePos = input.IndexOf("]", startTagPos + 1, StringComparison.CurrentCultureIgnoreCase);

            if (startTagClosePos <= startTagPos)
            {
                return(input);
            }

            string base64Text = input.Substring(startTagClosePos + 1, input.IndexOf(endTag) - startTagClosePos - 1);

            string decodeText = TextHelper.Base64Decode(base64Text);

            input = input.Remove(startTagPos, startTagClosePos - startTagPos + 1);

            decodeText = $"{Environment.NewLine}{markdown}{decodeText}{markdown}{Environment.NewLine}";
            input      = input.Insert(startTagPos, decodeText);
            input      = input.Replace(base64Text, string.Empty);

            input = input.Remove(input.IndexOf(endTag), endTag.Length);

            return(input);
        }