Ir para o conteúdo
williamjda

Alterar senha no primeiro acesso.

Mensagens Recomendadas

williamjda

Amigo boa noite.

Tenho mais uma duvida. Criei uma aplicação onde o usuario acessa através do login e senha.

Criei uma tabela no banco com os seguinte campos.

ID =int

Login = nvarchar

Senha = nvarchar

Acesso = nvachar

AlterarSenha = Bit

Criei o campo alterarsenha com a intenção de que se o mesmo estiver marcado ao logar deve-se carregar o form alterarSenha. Mas não consegui desenvolver a logica para isso. Alguem tem alguma idéia de como seria isso?

O código do Botão acessar esta assim:

'conexao.ConnectionString = "Data Source=localhost;Initial Catalog=BDSQLSATSYSTEM;User ID=sa;Password=garoto"
	conexao.ConnectionString = "Data Source=172.20.11.10;Initial Catalog=DADOS.MDF;User ID=******;Password=******"
	'Faz a verificação do usuario e senha no banco de dados
	Try
		'String de conexão no servidor da aplicação.
		'*****
		Dim cmd As New SqlCommand("SELECT * FROM CadastroLoginSistema WHERE Senha='" & txtSenha.Text & "'AND Senha = '" & txtLogin.Text & "'", conexao)

		conexao.Open()
		Dim dr As SqlDataReader = cmd.ExecuteReader()
		'Retorna o nome do usuario que logou no sistema em uma msgbox.

		If (dr.Read() = True) Then
			txtLogin = txtSenha
			MessageBox.Show("Bem-Vindo " & txtLogin.Text)
			Me.Hide()
			MDIParent_System.ShowDialog()
		Else
			'Faz o retorno da mensagem de erro caso usuario e senha estajam incorretos
			MessageBox.Show("Usuario ou Senha Invalidos, por favor tente novamente !!!")
			txtLogin.Clear()
			txtSenha.Clear()
			txtLogin.Focus()
		End If
		conexao.Close()
	Catch ex As Exception
		MessageBox.Show(ex.Message)
	End Try

Grato a todos pela atenção.

Editado por williamjda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Criei o campo alterarsenha com a intenção de que se o mesmo estiver marcado ao logar deve-se carregar o form alterarSenha. Mas não consegui desenvolver a continuação da logica. Algue tem alguma idéia de como seria isso?

Estiver marcado, como assim ?


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
williamjda

Vou detalhar:

No sistema tem um form para cadastrar usuario. Quem cadastra um usuario deve fornecer uma senha provisória e marcar o campo O usuario deve alterar a senha no primeiro acesso onde o mesmo é CheckBox.

O usuario que recebe a senha provisória no primeiro acesso se a checkbox estiver marcada no banco de dados então ele deve ser direcionado para o form alterarsenha caso contrario formsistema.

Editado por williamjda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

O usuario que recebe a senha provisória no primeiro acesso se a checkbox estiver marcada no banco de dados então ele deve ser direcionado para o form alterarsenha caso contrario formsistema.

Só precisas de saber se a checkbox está marcada ou não e fazer as instruções. É essa lógica que não conseguiste continuar ou não consegues é captar o valor do campo alterarsenha?


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
williamjda

Exato. Eu não sei como fazer para ele captar o campo alterarsenha do banco. E depois de altarar a senha acredito que ele tenha que desmarcar automaticamente.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Dim query As String = "query"
Dim cmd As New SqlCommand(query, conexao)
'Cria uma consulta paremetrizada
cmd.Parameters.Add(New SqlParameter("Nome", nome))
'executa a consulta.
Dim dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleRow)
'verifica o valor do campo alterarsenha  
If dr.HasRows Then
dr.Read()
 if(dr.Item(0).ToString=="true")
      'já alterou senha, remete para sistema
 else
       'ainda nao alterou, mostra a janela de alteração
 endif

Vê se percebes a lógica.É simples..

Editado por NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
williamjda

Amigo estou com dificuldades de perceber a maneira correta de escrever este código. Poderia me ajudar? por favor.

Sei que o código ficou escrito de maneira incorreta. Mas não sei como o fazer da maneira exata.


Private Sub BT_acessar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_acessar.Click
	'String de Conexão com O servidor da aplicação GRUPO PETRÓPOLIS
	conexao.ConnectionString = "Data Source=172.20.11.10;Initial Catalog=DADOS.MDF;User ID=login;Password=***"
	''============================================================================================================================
	''============================================================================================================================
	'Faz a verificação do usuario e senha no banco de dados
	Try
		'String de conexão no servidor da aplicação.
		Dim cmd As New SqlCommand("SELECT * FROM CadastroLoginAcessoSSMCORP WHERE Senha='" & txtSenha.Text & "'AND Login = '" & txtLogin.Text & "'", conexao)
		'Cria uma consulta paremetrizada
		cmd.Parameters.Add(New SqlParameter("Nome", nome)) 'Não sei o que fazer com essa linha de comando.
		conexao.Open()
		'executa a consulta.
		Dim dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleRow)
		'Abre a conexão com o banco
		If dr.HasRows Then
			dr.Read()
			If (dr.Item(0).ToString = "true") Then
				'já alterou senha, remete para sistema
				MDIParent_system.txtUsuarioLogado.Text = txtLogin.Text
				DisconectUser.txtUsuarioLogado.Text = txtLogin.Text
				MessageBox.Show("Bem-Vindo " & txtLogin.Text)
				Me.Hide()
				MDIParent_system.ShowDialog()
			Else
				'Faz o retorno da mensagem de erro caso usuario e senha estajam incorretos
				MessageBox.Show("Login ou Senha inválidos, por favor tente novamente !!!")
				txtLogin.Clear()
				txtSenha.Clear()
				txtLogin.Focus()
				FerramentaAlterarMinhaSenha.Show()
			End If
		End If
		conexao.Close()
	Catch ex As Exception
		MessageBox.Show(ex.Message)
	End Try
	conexao.Close()
End Sub

Editado por williamjda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

penso que a logica seria adicionar um campo passProvisorio boleano à tabela cadastroLogin.... ,e ao fazer o cadastro do usuario e ao gerar a pass provisoria colocaria esse exemplo: true.

depois no login o select teria tambem esse campo boleano, e se for true aparecer no form login para alterar a pass, ou obrigar mesmo sem aparecer (emcaminhar para o form alterar a senha e ao alterar colocar o campo como false) se for false entra no sistema.

espero ter ajudado

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.