Jump to content
Sign in to follow this  
williamjda

Alterar senha no primeiro acesso.

Recommended Posts

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.

Edited by williamjda

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Edited by williamjda

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites
NunoDinis

Em vez de utilizares checkbox, utiliza um campo booleano.. é mais prático.


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

ndsotware.org

Share this post


Link to post
Share on other 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..

Edited by NunoDinis

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

ndsotware.org

Share this post


Link to post
Share on other 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

Edited by williamjda

Share this post


Link to post
Share on other 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

Edited by acao

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.