none
Usuario Logado no Sistema - VS2003 RRS feed

  • Pergunta

  • Pessoal na aplicação tenho um form de login que faz a autenticação dos usuarios cadastrados no sistema e armazenados na tabela usuarios, gostaria após o login exibir em label o usuario que fez o login.

    A duvida é como armazeno o usuario que esta logado, em Web usava session, mas em winforms não estou sabendo fazer.

    Código do botão OK do form de login
    Private Sub btok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btok.Click
            Dim senhaID As String
            Dim strQuery As String
            Dim strRetorno As String
            Dim comando As New SqlCommand
            Try
                Cn.Open()
                comando.Connection = Cn
                comando.CommandText = "SELECT senha FROM usuarios Where idusuario=@nomeUsuario"
                comando.Parameters.Add("@nomeUsuario", UserName.Text)
                senhaID = comando.ExecuteScalar
                Cn.Close()
                If util.GeraHash(UserPass.Text).Equals(senhaID) Then
                    Dim filho1 As New menu
                    Me.Hide()
                    filho1.ShowDialog()
                    Me.Close()

                Else
                    MessageBox.Show("Senha/Usuário Incorreto(s)")

                End If
            Catch ex As SqlException
                MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
                Cn.Dispose()
            End Try
        End Sub

    quarta-feira, 18 de junho de 2008 11:07

Todas as Respostas

  • Julierme,

     

    Você pode criar uma variável no seu form principal e armazenar o valor nela.

     

    []s,

     

    domingo, 22 de junho de 2008 21:31
  • Criei uma classe chamada formularios.

    Code Snippet

    Public Class Formularios

        Public Shared flogin As New login
        Public Shared frmForm2 As New menu
        Public Shared frmForm3 As New cadfuncionarios

    End Class



    No formulario menu declarei a variavel abaixo
    Code Snippet

    Public sysusuario As String



    No formulario de login atribuir o valor a variavel do formulario de menu. linha em vermelho
    Code Snippet

    Private Sub btok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btok.Click
            Dim senhaID As String
            Dim strQuery As String
            Dim strRetorno As String
            Dim comando As New SqlCommand
            Try
                Cn.Open()
                Dim co As New SqlCommand
                co.Connection = Cn
                co.CommandText = "SELECT idusuario FROM usuarios Where idusuario=@nomeUsuario"
                co.Parameters.Add("@nomeUsuario", UserName.Text)
                user = co.ExecuteScalar

                comando.Connection = Cn
                comando.CommandText = "SELECT senha FROM usuarios Where idusuario=@nomeUsuario"
                comando.Parameters.Add("@nomeUsuario", UserName.Text)
                senhaID = comando.ExecuteScalar
                Cn.Close()
                If util.GeraHash(UserPass.Text).Equals(senhaID) Then
                    Me.Hide()
                    Formularios.frmForm2.sysusuario = user
                    Formularios.frmForm2.ShowDialog()
                    Me.Close()

                Else
                    MessageBox.Show("Senha/Usuário Incorreto(s)")

                End If
            Catch ex As SqlException
                MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
                Cn.Dispose()
            End Try

        End Sub



    No formulario de menu verifico se o usuario tem acesso como administrador ou não, se tiver vai liberar um item do menu se não vai colocar o item como enativo.
    Code Snippet

    Private Sub menu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            StatusBar1.Panels(3).Text = DateTime.Now.ToShortTimeString
            StatusBar1.Panels(2).Text = DateTime.Now.ToShortDateString
            StatusBar1.ShowPanels = True
            'permissao
            Cn.Open()
            Dim drPegaPermissao As SqlDataReader
            Dim cmdPegaPermissao As New SqlCommand("SELECT  acessos, idusuario FROM usuarios WHERE idusuario='" + sysusuario + "'", Cn)
            cmdPegaPermissao.ExecuteScalar()
            drPegaPermissao = CType(cmdPegaPermissao.ExecuteReader, SqlDataReader)
            While drPegaPermissao.Read

                If CStr(drPegaPermissao("acessos")) = "Administrador" Then
                    Me.MenuItem4.Enabled = True
                Else
                    Me.MenuItem4.Enabled = False
                End If
            End While
            Cn.Close()

        End Sub

     

    segunda-feira, 23 de junho de 2008 04:04