Para isso, é necessário utilizar um
GXportlet de Aplicativo Externo. Nesse GXportlet, devemos configurar as propriedades:
Origem para especificar a URL do aplicativo e
Acrescentar parâmetro de segurança.
Depois, no aplicativo, é preciso levar em conta o seguinte:
• Deve-se receber por parâmetro uma variável do tipo Character (245), esta variável nos permitirá obter os dados do usuário logado no site. (*)
• Deve-se realizar uma invocação SOAP ao web service externo pgxpws001, que se distribui com os programas de frontend de GXportal. Este web service valida o usuário e retoma o estado da sessão e os dados do usuário.
Exemplo:
•
Baixar o seguinte
xpz ou criar uma KB a partir da KB “GXportal5.0_Examples”, que se encontra no GeneXus Server Público http://public.genexusserver.com/gxserver (File - New Knowledge Base From Server) e fazer Build All.
• No GXportal, adicionar um GXportlet de Aplicativo Externo com a seguinte URL: http://localhost:<port>/<virtual_directory>/GXApplication.aspx e a propriedade adicionar parâmetro de segurança com o valor sim.
• Fazer uma visualização prévia da página que contém o GXportlet e ver os dados do usuário logado carregados no aplicativo.
(*) Este parâmetro é composto pelos seguintes dados:
Código do idioma em que se está visualizando o portal (“S” = Espanhol, “E” = Inglês, “P”= Português etc)
Código do portal
Código de canal
Código de página
Código de setor
Código de usuário no GXportal
Estado em que se está visualizando o portal (em produção = “O” ou em projeto “P”)
Os primeiros sete valores deste parâmetro (separados por “;”) podem ser utilizados diretamente pelo aplicativo externo (não estão criptografados). Quando se executa o serviço de verificação de sessão de usuário (web service), GXportal valida se o usuário pode acessar a página e o canal recebidos por parâmetro.
Ao executar o web service do GXportal, será obtido como resposta o código maior que zero para indicar o tipo de erro que houve. Se a sessão é correta, o código de resposta é zero e retornam dados do usuário, detalhados a seguir.
Códigos de erro
0 - Sessão de usuário correta
1 - Usuário anônimo
2 – A página não é válida
3 - Falta a senha criptografada
4 - Senha criptografada incorreta, não corresponde à sessão
5 - O usuário criptografado não coincide com o código de usuário
6 - Sessão incorreta
Código de usuário (no GXportal)
Código externo do usuário (na base externa)
Identificação do usuário (login name)
Identificação do Perfil de GXportal
Identificação do Perfil externo
Sobrenome
Nome
Código do portal
Código do canal
Código da página
Código do setor da página
Estado em que se está visualizando o portal
A primeira coisa que cada programa do aplicativo externo deveria fazer é chamar este ao web service do GXportal para validar a sessão do usuário. Para não ficar chamando excessivamente o serviço, o aplicativo externo também poderia executar este uma vez e depois gravar um cookie para identificar o usuário ou utilizar método de sessão do usuário interno do aplicativo. No caso de gravar um cookie, convém que ele seja destruído ao se fechar o navegador.