コード例 #1
0
        /// <summary>
        /// Insere um novo usuário.
        /// </summary>
        /// <param name="usuario">Usuário a ser incluído.</param>
        /// <returns></returns>
        public override long Inserir(UsuarioEntidade usuario)
        {
            try
            {
                // Valida e-mail
                if (!Validador.ValidarEmail(usuario.TXT_EMAIL))
                {
                    throw new Exception("E-mail inválido.");
                }

                // Valida CPF
                if (!Validador.ValidarCPF(usuario.COD_CPF))
                {
                    throw new Exception("CPF inválido.");
                }

                // Limpa máscaras
                usuario.COD_CPF           = usuario.COD_CPF.LimparMascara();
                usuario.COD_TELEFONE_CEL  = usuario.COD_TELEFONE_CEL.LimparMascara();
                usuario.COD_TELEFONE_FIXO = usuario.COD_TELEFONE_FIXO.LimparMascara();

                // Valida telefones
                if (usuario.COD_TELEFONE_CEL.Length < 11)
                {
                    throw new Exception("Telefone Celular inválido");
                }

                if (usuario.COD_TELEFONE_FIXO.Length < 10)
                {
                    throw new Exception("Telefone Fixo inválido");
                }

                // Valida tamanho da senha
                if (usuario.PWD_USUARIO.Length < 6)
                {
                    throw new Exception("A senha deve possuir no mínimo 6 caracteres.");
                }

                // Encripta a senha
                usuario.PWD_USUARIO = Criptografia.Encriptar(usuario.PWD_USUARIO);

                return(base.Inserir(usuario));
            }
            catch (SqlException ex)
            {
                throw new Exception(ErrosBanco.Traduzir(ex.Message, ex.Number));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
        /// <summary>
        /// Atualiza os dados do usuário.
        /// </summary>
        /// <param name="usuario">Usuário a ser atualizado</param>
        /// <returns></returns>
        public override bool Atualizar(UsuarioEntidade usuario)
        {
            try
            {
                // Valida e-mail
                if (!Validador.ValidarEmail(usuario.TXT_EMAIL))
                {
                    throw new Exception("E-mail inválido.");
                }

                // Valida CPF
                if (!Validador.ValidarCPF(usuario.COD_CPF))
                {
                    throw new Exception("CPF inválido.");
                }

                // Limpa máscaras
                usuario.COD_CPF           = usuario.COD_CPF.LimparMascara();
                usuario.COD_TELEFONE_CEL  = usuario.COD_TELEFONE_CEL.LimparMascara();
                usuario.COD_TELEFONE_FIXO = usuario.COD_TELEFONE_FIXO.LimparMascara();

                // Valida telefones
                if (usuario.COD_TELEFONE_CEL.Length < 11)
                {
                    throw new Exception("Telefone Celular inválido");
                }

                if (usuario.COD_TELEFONE_FIXO.Length < 10)
                {
                    throw new Exception("Telefone Fixo inválido");
                }

                return(base.Atualizar(usuario));
            }
            catch (SqlException ex)
            {
                throw new Exception(ErrosBanco.Traduzir(ex.Message, ex.Number));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #3
0
        public void ConfigureServices(IServiceCollection services)
        {
            services
            .AddCors()
            .AddMvc()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddJsonOptions(jsonOptions => {
                jsonOptions.SerializerSettings.NullValueHandling     = NullValueHandling.Ignore;
                jsonOptions.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                jsonOptions.SerializerSettings.Formatting            = Formatting.Indented;
                jsonOptions.SerializerSettings.ContractResolver      = new DefaultContractResolver();
                jsonOptions.SerializerSettings.DateFormatString      = "dd/MM/yyyy HH:mm:ss";
                jsonOptions.SerializerSettings.Culture = new System.Globalization.CultureInfo("pt-BR");
            });

            services.AddMemoryCache();

            var signingConfigurations = new SigningConfigurations();

            services.AddSingleton(signingConfigurations);

            var tokenConfigurations = new TokenConfigurations();

            new ConfigureFromConfigurationOptions <TokenConfigurations>(
                Configuration.GetSection("TokenConfigurations"))
            .Configure(tokenConfigurations);
            services.AddSingleton(tokenConfigurations);


            services.AddAuthentication(authOptions =>
            {
                authOptions.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                authOptions.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(bearerOptions =>
            {
                var paramsValidation = bearerOptions.TokenValidationParameters;
                paramsValidation.IssuerSigningKey = signingConfigurations.Key;
                paramsValidation.ValidAudience    = tokenConfigurations.Audience;
                paramsValidation.ValidIssuer      = tokenConfigurations.Issuer;

                // Valida a assinatura de um token recebido
                paramsValidation.ValidateIssuerSigningKey = true;

                // Verifica se um token recebido ainda é válido
                paramsValidation.ValidateLifetime = true;

                // Tempo de tolerância para a expiração de um token (utilizado
                // caso haja problemas de sincronismo de horário entre diferentes
                // computadores envolvidos no processo de comunicação)
                paramsValidation.ClockSkew = TimeSpan.Zero;
            });

            // Ativa o uso do token como forma de autorizar o acesso
            // a recursos deste projeto
            services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                               .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
                               .RequireAuthenticatedUser().Build());
            });



            ErrosBanco.Popular();
        }