ColdFusion: quando definir as variáveis de sessão?

Quando um utilizador pede uma página, é quando uma sessão é iniciada para esse utilizador? Pelo que posso dizer, uma sessão é iniciada assim que você faz um pedido de página...

Se for este o caso, quando é que cria variáveis de sessão? ou seja, nome de utilizador, Senha, preferências, etc... a qualquer hora?

Author: dcolumbus, 2011-05-15

2 answers

Sim, O âmbito da sessão para o utilizador é configurado no primeiro pedido. No entanto, depende da sua preferência quanto a quando você quer definir várias bandeiras e valores. Você provavelmente não quer colocar a senha no escopo da sessão.

O que eu gosto de fazer é colocar valores específicos do utilizador numa estrutura do utilizador. Assim, no início do pedido, eu verificaria para a variável e configuração se ela não existe. Por exemplo...

<cfif not structkeyexists(session, "user")>
    <cfset session.user = {
        authorized = false
        , admin = false
        , username = ''
        , accountid = ''
        <!--- etc --->
    } />
</cfif>

Quando o utilizador se ligar, poderá então preencher os valores apropriados e definir sessao.usuario.authorized = true

Quando o utilizador faz login sobre esta abordagem, é possível apagar a estrutura de utilizadores.

<cfset structdelete(session, "user") />

Então na próxima página a verificação será feita novamente para a estrutura do Usuário e criada se ela não existir.

 4
Author: Dan Roberts, 2011-05-18 12:51:04

As bases para configurar e usar as variáveis de sessão são explicadas aqui .

Uma sessão é, basicamente, uma relação lógica entre um cliente e um aplicativo, portanto, variáveis de sessão estão disponíveis a partir do cliente da primeira solicitação para a sua aplicação, e a sessão é, normalmente, persistentes através de solicitações através de cookies que identificam a sessão, embora isso também pode ser feito passando os identificadores na url. Vale a pena prestar atenção à sua sessão configuração do tempo-limite, por exemplo, você pode querer fornecer um tempo-limite mais curto para bots/crawlers que não configuram cookies e, portanto, iniciará uma nova sessão para cada pedido de Página (mais detalhes sobre este).

 5
Author: Jeremy Halliwell, 2011-05-16 09:09:13