public string Cadastrar(ClienteDto clienteDto)
        {
            if (clienteDto == null)
            {
                throw new ArgumentException(nameof(clienteDto));
            }

            if (Password.VerificarSenha(clienteDto.Senha) < PasswordScore.Strong)
            {
                throw new ArgumentException("Senha muito fraca");
            }

            try
            {
                var cliente = Mapper.Map <ClienteDto, Cliente>(clienteDto);
                ChaveAssimetrica.GenKey_SaveInContainer(clienteDto.Cpf);
                var chavePublica = ChaveAssimetrica.GetKeyPublicFromContainer(clienteDto.Cpf);
                var usuario      = _servicoUsuario.GerarUsuario(cliente, clienteDto.Senha);

                cliente.NumeroCartao    = ChaveAssimetrica.RSAEncrypt(Encoding.Unicode.GetBytes(clienteDto.NumeroCartao), chavePublica);
                cliente.CodigoSeguranca = ChaveAssimetrica.RSAEncrypt(Encoding.Unicode.GetBytes(clienteDto.CodigoSeguranca), chavePublica);
                cliente.Usuario         = usuario.Item2;
                contexo.Clientes.Add(cliente);
                contexo.SaveChanges();
                return(usuario.Item1);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
示例#2
0
        public ActionResult Index(AutenticacaoDto model)
        {
            var retorno = _servicoAutenticacao.Autenticar(model);

            if (retorno != null)
            {
                var cookie = _servicoAutenticacao.GerarCookieComToken(retorno);
                Response.Cookies.Add(cookie);
                Session["Chave"] = ChaveAssimetrica.GetKeyPrivateFromContainer(model.Login);
                return(RedirectToAction("Index", "Home", new { Area = "Vendas" }));
            }

            return(View());
        }
        public ClienteDto ObterClientePorUsuario(int id, string chave)
        {
            var cliente = contexo.Clientes.Where(c => c.Usuario.Id == id).FirstOrDefault();

            if (cliente != null)
            {
                var clienteDto = Mapper.Map <Cliente, ClienteDto>(cliente);

                clienteDto.NumeroCartao    = Encoding.Unicode.GetString(ChaveAssimetrica.RSADecrypt(cliente.NumeroCartao, chave));
                clienteDto.CodigoSeguranca = Encoding.Unicode.GetString(ChaveAssimetrica.RSADecrypt(cliente.CodigoSeguranca, chave));

                return(clienteDto);
            }

            return(null);
        }