Autor Tópico: sistema de login multi bancos  (Lida 77 vezes)

Alexandre_Irgang

  • Novato
  • *
  • Mensagens: 23
    • Email
sistema de login multi bancos
« Online: Março 15, 2019, 02:13:55 pm »
olá pessoal, na minha app de login criei um código baseado em um exemplo do scriptcase mesmo que verifica o nome do usuário e e edita a conexão para trocar o nome do banco de acordo com este usuário. só que na primeira vez que coloca-se o usuario e a senha ele ignora este código e vai direto para a parte de verificação de usuario e senha no bd  e dá usuario não encontrado. mas se clico em entrar novamente ele lê o código e funciona perfeitamente.
se alguém puder me ajudar? o código está no evento onValidate da app_login.

$slogin = sc_sql_injection({login});
$spswd = sc_sql_injection(hash("sha512",{pswd}));

if ({login} == 'usuario01') {
   
       
        $arr_conn['database'] = "bd-01";
      $sim = 'S';   

     }else if ({login} == 'usuario02') {
   
      
        $arr_conn['database'] = "bd02";
      $sim = 'S';   

     }else {
      sc_error_message("Usuario não possui BD!!");
        }

if ($sim = 'S') {
   sc_connection_edit("conn_postgres", $arr_conn);
 
                 }



$sql = "SELECT
      priv_admin,
      active,
      \"name\",
      email
         FROM public.sec_users
         WHERE login = $slogin
      AND pswd = ".$spswd;
   
sc_lookup(rs, $sql);
   
 if(count({rs}) == 0)
{
   sc_log_add('login Fail', {lang_login_fail} . {login});
   ;
   sc_error_message({lang_error_login});
}
elseif({rs[0][1]} == 'Y')
{
   [usr_login]         = {login};
   [usr_priv_admin]    = {rs[0][0]};
   [usr_name]         = {rs[0][2]};
   [usr_email]         = {rs[0][3]};
}
else
{
   sc_error_message({lang_error_not_active});
   sc_error_exit();
}

reinaldo lima

  • Novato
  • *
  • Mensagens: 34
Re:sistema de login multi bancos
« Responder #1 Online: Março 16, 2019, 10:03:11 pm »
verifique duas coisas
primeiro no seu banco de dados como está sendo feito o select;


segundo; reveja seu lookup.



Reinaldo Lima
Business Systems Analyst Sênior

Jair

  • Novato
  • *
  • Mensagens: 7
    • Email
Re:sistema de login multi bancos
« Responder #2 Online: Março 19, 2019, 10:19:40 am »
sou iniciante, bem iniciante, vou colocar o que fiz e esta funcionando muito bem.

criei uma aplicação blank chamada Principal e nela coloquei o recebimento do cliente que vai logar, de acordo com o que se recebe (GET) conecta em um banco em caso de valor diferente aparece uma mensagem de erro

fiz um switch  para cada parâmetro recebido, dentro dele esta os dados do banco, e crei uma variavel  ClienteLogado com o nome do cliente, esta coloquei como Global

coloco o sc_connection_edit  e na sequencia redireciono para o login  sc_redir('app_Login');

Criei uma outra aplicação controle chamada ErroAcesso, nela tem apenas um campo que é o código do cliente (esta será para caso de dar algum erro ou a pessoa acessar direto o login e não ter logado, o ClienteLogado estará em branco)  e no onValidate verifica se foi digitado e redireciona para o Principal passando o parâmetro digitado algo como : sc_redir(Principal,Cli=$CliAcesso)

no app_Login em onApplicationInit  adicionei :
if([global_CliLogado] == ''){sc_redir(ErroAcesso);}

*Não sei se é a melhor forma, mas foi a forma que encontrei para fazer funcionar, quando ele entra no modulo de segurança ja esta setado o banco que vai trabalhar