none
Variável comum para todos os formweb RRS feed

  • Pergunta

  • Senhores, saudações

    vs10, website aps.net (vb)

    como faço para levar uma variavel enquanto navego nos formularios

    lembrando que eu posso ter varios usuarios ao mesmo tempo

    Exemplo: o João entra no sistema e em todas a telas que ele entrar o formweb sabe que é o joao

    e o paulo está em uma outra maquina em outra cidade e o formweb sabe que é o paulo em todos os formweb que ele entrar



    Laercio Tersi

    quarta-feira, 19 de março de 2014 03:16

Respostas

  • Olá Tersi,

    existem várias formas de se fazer a persistência de usuário, entre elas estão o uso de Session e Cache.

    De uma lida sobre isso nos links abaixo:
    Session

    Cache

    No caso da session, um exemplo fácil, mas, que não se enquadra nas boas práticas de uso seria assim:
    Você carrega por exemplo sua classe usuário no momento do login e coloca essa classe, já carregada, dentro de uma session. Com isso você terá todas as informações do usuário logado nessa sessão. Para pegar os dados desse usuário novamente basta fazer isso:

    Dim Usuario as usuario = Session("usuario")

    Perceba que eu nem precisei instanciar a classe usuário, porque na session já tem uma instancia de usuário que foi carregada no momento do login.

    Qualquer dúvida poste novamente.

    Wennder Santos


    • Editado Wennder SantosMVP quarta-feira, 19 de março de 2014 11:57
    • Marcado como Resposta Tersi quinta-feira, 20 de março de 2014 21:52
    quarta-feira, 19 de março de 2014 11:56
  • Olá,

    muitas pessoas dizem que usar session não é melhor forma de fazer o que você quer, entretanto, eu acredito que isso se enquadre em aplicações de grande porte. A session é variável que consome recursos do servidor, como por exemplo memória, e é uma variável que fica ativa por um tempo tempo default até que expire, mas, esse tempo você também pode alterar.

    Tempo default da session até que ela expire é de 20 minutos. Voce pode alterar esse tempo através do web.config ou direto no iis, segue abaixo o link da documentação onde voce encontrara como alterar pelo web.config. 
    http://msdn.microsoft.com/pt-br/library/gg454582.aspx

    Para alterar pelo iis selecione seu site e procure por Estado da Sessão.

    Wennder Santos

    • Editado Wennder SantosMVP quinta-feira, 20 de março de 2014 02:59
    • Marcado como Resposta Tersi quinta-feira, 20 de março de 2014 21:52
    quinta-feira, 20 de março de 2014 02:36

Todas as Respostas

  • Olá Tersi,

    existem várias formas de se fazer a persistência de usuário, entre elas estão o uso de Session e Cache.

    De uma lida sobre isso nos links abaixo:
    Session

    Cache

    No caso da session, um exemplo fácil, mas, que não se enquadra nas boas práticas de uso seria assim:
    Você carrega por exemplo sua classe usuário no momento do login e coloca essa classe, já carregada, dentro de uma session. Com isso você terá todas as informações do usuário logado nessa sessão. Para pegar os dados desse usuário novamente basta fazer isso:

    Dim Usuario as usuario = Session("usuario")

    Perceba que eu nem precisei instanciar a classe usuário, porque na session já tem uma instancia de usuário que foi carregada no momento do login.

    Qualquer dúvida poste novamente.

    Wennder Santos


    • Editado Wennder SantosMVP quarta-feira, 19 de março de 2014 11:57
    • Marcado como Resposta Tersi quinta-feira, 20 de março de 2014 21:52
    quarta-feira, 19 de março de 2014 11:56
  • Muito obrigado Wennder Santos deu certo, montei assim para gravar

     If senha_bco = senha Then
                Session("Tip") = TextBox_tipo.Text
                MsgBox("ta dentro")
                Response.Redirect("About.aspx")
            Else
                MsgBox("senha errada")
    
            End If

    e para restaurar montei assim, 

     Dim tipo As String = Session("Tip")
            If tipo = "Usuário" Then
                MsgBox("senha errada")
            Else
                Response.Redirect("cad_produtos.aspx")
            End If

    Só não entendi oque você quis falar com isso

    No caso da session, um exemplo fácil, mas, que não se enquadra nas boas práticas de uso seria assim:

    So gostaria de saber quais são as restrições tipo:

    o session fica por quanto tempo

    posso trocar de formularios quantas vezes

    e outras.


    Laercio Tersi

    quinta-feira, 20 de março de 2014 01:22
  • Olá,

    muitas pessoas dizem que usar session não é melhor forma de fazer o que você quer, entretanto, eu acredito que isso se enquadre em aplicações de grande porte. A session é variável que consome recursos do servidor, como por exemplo memória, e é uma variável que fica ativa por um tempo tempo default até que expire, mas, esse tempo você também pode alterar.

    Tempo default da session até que ela expire é de 20 minutos. Voce pode alterar esse tempo através do web.config ou direto no iis, segue abaixo o link da documentação onde voce encontrara como alterar pelo web.config. 
    http://msdn.microsoft.com/pt-br/library/gg454582.aspx

    Para alterar pelo iis selecione seu site e procure por Estado da Sessão.

    Wennder Santos

    • Editado Wennder SantosMVP quinta-feira, 20 de março de 2014 02:59
    • Marcado como Resposta Tersi quinta-feira, 20 de março de 2014 21:52
    quinta-feira, 20 de março de 2014 02:36
  • Tersi, uma coisa, no código que você escreveu

    If senha_bco = senha Then
        Session("Tip") = TextBox_tipo.Text
        MsgBox("ta dentro")
        Response.Redirect("About.aspx")
    Else
        MsgBox("senha errada")
    End If

    Você disse que você está usando ASP.net certo? Bem, "MsgBox" NÃO FUNCIONA.

    O MSGBOX pode funcionar no ambiente de compilação, mas lembre-se que o "programa" roda no servidor, dentro do IIS, por isso alertas a serem exibidos no lado do cliente não podem ser usando MSGBOX que roda no servidor.

    Você precisa de um "alert('XX');' Javascript.

    quinta-feira, 20 de março de 2014 19:13
  • ok muito obrigado


    Laercio Tersi

    quinta-feira, 20 de março de 2014 21:52