Login Personalizado Protheus

Pessoal, é possível fazer um login personalizado no Protheus? Digo, criar uma User Function customizada que monta uma tela de autenticação com campos de usuário e senha, validar o usuário e carregar o sistema?

Eu já fiz esta tela, já consigo validar o usuário e até consigo preparar o ambiente, mas ainda não consegui descobrir como fazer realmente o login dele e carregar o sistema, por exemplo em um módulo específico ou mesmo na tela de seleção de módulo que naturalmente aparece após o login padrão do Protheus quando utilizado SIGAMDI.

Para validar dados do usuário eu faço da seguinte maneira:

// Define a busca por nome de usuário
PswOrder(2)
// Buscando cadastro de usuário por nome de usuário
If (PswSeek(cUsuario, .T.))
aUsuario := PSWRET() // Retorna vetor com informações do usuário
// Verificando senha do usuário
if(PSWNAME(cSenha))
lAutenticado := .T.
// Passando dados do usuário autenticado
aUsuarioLogado := aUsuario
endif
endif

e depois eu faço…
RpcSetEnv(“01”,“01”, cGetUsuario, cGetSenha, “”, “”, {}, , , , )
… funções…
RpcClearEnv();

Gostaria depois de preparar o ambiente realizar o login verdadeiro do usuário e chamar a interface do protheis sem ter que logar novamente. Eu já tentei chamar direto o SIGAMDI ou SIGAADV e é preciso fazer login novamente!

Obrigado desde já!