Login de sistema utilizando método POST

Pessoal bom dia! Estou desenvolvendo um sistema no qual a tela de login padrão não é a mesma do gerado na segurança do scriptcase. Nela eu verifico se o usuário e senha estão corretos e se for do grupo x abrirá a tela do sistema atual, mas se for do grupo y eu gostaria de executar a tela de login gerado pelo scriptcase passando o usuário e senha. É possível fazer isso? Desde já agradeço.

Sim, basta você analisar o código da aplicação de segurança tipo ‘grupo’ gerada pelo Scriptcase,
e ver como ele libera os acesso e faz o redirecionamento para o menu da aplicação:
Marquei os locais onde esta a lógica do funcionamento:

Depois só adaptar o código no seu ‘login’ que você criou para fazer o ‘if’

Bom dia Jailton! Obrigado pelo retorno. Vou testar aqui e posiciono no chamado. Mais uma vez agradeço a atenção! Abraços.

Valeu Jailton, obrigado pela dica!!

Jailton, eu tentei fazer algo um pouco diferente, e que não funcionou, me parece que a tela de login entrou em loop.

No onload eu coloquei a seguinte programação:

if([var_us] != ‘’ && [var_pw] != ‘’)
{
{login} = [var_us];
{pswd} = [var_pw];
sc_ajax_javascript(“nm_atualiza(‘alterar’)”);
}else{
sc_apl_conf(‘app_form_add_users’, ‘start’, ‘new’);
}

Estes 2 campos eu passo vou passar no método POST, mas para testes eu estou passando via GET, ou seja, <endereço do login>?var_us=xxxxx&var_pw=yyyyy

A ideia seria executar a tela de login automaticamente executando o botão Login e respeitando todas validações do scriptcase. Saberia me dizer por que não funcionou? Ou se tem outra forma, de executar este botão login que pelo inspecionar elementos executa: href=“javascript: nm_atualiza(‘alterar’);”

Desde já agradeço.

Do jeito que passei era para você pegar os códigos da aplicação Login e adaptar dentro da sua aplicação ai ele já iria validar tudo corretamente, e depois você redirecionava para o menu já com as autenticações.

Agora você quer enviar o usuário e senha diretamente lá para página autenticar e prosseguir, deste jeito nunca tentei.

Nesse caso poderia tentar estes exemplos:
javascript - Autenticar usuário e senha de uma outra página - Stack Overflow em Português

Obrigado! irei analisar o que enviou. Pensei em fazer desta forma, pois continuaria utilizando o scriptcase e suas funções da tela de login. Mas se não der jeito, aí terei que partir para a sua primeira sugestão. Se eu conseguir avançar eu posto a solução.

1 Curtida

Conforme o tipo de segurança gerado, o SC guarda o login em cookie e autentica automaticamente.

Se vc salvar os mesmos dados em cookie o login da segurança não vai abrir a tela para digitação dos dados e vai tratar a segurança como tem que ser tratada.

Obrigado Haroldo! Vou avaliar. Já estou quase conseguindo, falta pouco. Atualmente a tela está entrando em loop tentando autenticar toda hora. No Onload fiz isso:
if([var_us] != ‘’ && [var_pw] != ‘’)
{
{login} = [var_us];
{pswd} = [var_pw];
sc_ajax_javascript(‘botao_ok’);
}
Criei o método javascript botao_ok
document.getElementById(“sub_form_b”).click();

Aí ele entra em loop e criando um outro botão funciona quando se clica fora do form.

Agradeço mais uma vez o apoio de todos.

Vamos lá pessoal! Funcionou a questão de logar automaticamente utilizando a tela de login do scriptcase e precisei fazer o seguinte:

  1. Os campos de login e senha, passaram a não ser mais obrigatórios, mas o tratamento agora fica no onValidate da tela.

  2. No OnLoad Inseri o seguinte comando:
    if(trim([var_us]) != ‘’ && trim([var_pw]) != ‘’)
    {
    //Executo o método javascript botao_ok
    sc_ajax_javascript(‘botao_ok’);
    }

  3. Criei o métodos javascript chamado botao_ok com o seguinte conteúdo:
    //Executará o click do botão login, que ao inspecionar elemento foi identificado pelo ID sub_form_b
    document.getElementById(“sub_form_b”).click();

  4. No OnValidate teve bastante mudança:
    //Verifico se as variáveis de seção estão preenchidas
    if(trim([var_us]) != ‘’ && trim([var_pw]) != ‘’)
    {
    //Se tiverem preenchidas atribuo as variáveis de controle de select
    $slogin = sc_sql_injection([var_us]);
    $spswd = sc_sql_injection(md5([var_pw]));
    {login} = $slogin;
    {pswd} = $spswd;
    }else{
    if (trim({login}) != ‘’ && trim({pswd}) != ‘’)
    {
    // Se não estiverem preenchidas e os campos da tela tiverem preenchidos atribuo os campos de controle do select com o conteúdo dos campos de tela
    $slogin = sc_sql_injection({login});
    $spswd = sc_sql_injection(md5({pswd}));
    }else{
    //Se não estiverem preenchidos forço zerar o conteúdo das variáveis de controle do select
    $slogin = ‘’;
    $spswd = ‘’;
    }
    }

  5. Gero o select para captura e validação do usuário se os campos de controle estiverem preenchidos
    if(trim($slogin) != ‘’ && trim($spswd) != ‘’)
    {

  6. o processo de validação é normal, mas vale lembrar que para toda validação negativa eu utilizo o comando abaixo para garantir que o conteúdo das variáveis de sessão sejam zeradas:
    sc_reset_global([var_us], [var_pw]);

  7. No OnValidadeSuccess antes do redirecionamento ao menu eu também zerei o conteúdo das variáveis de seção para garantir que ao sair ele não irá executá-la em loop.
    sc_reset_global([var_us], [var_pw]);

Ah, estava esquecendo, mas para não ficar pedindo toda hora a variável, eu coloque ela como SAÍDA na aba Aplicação => Variáveis Globais.

Bom pessoal, acho que está bem detalhado aí! Espero que ajude quem precise, e agradeço a ajuda de todos. Chamado Concluído.

1 Curtida