/// <summary> /// Método usado para cadastrar o usuário no banco. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.Web.UI.ImageClickEventArgs"/> instance containing the event data.</param> protected void ImageButtonEnviar_Click(object sender, ImageClickEventArgs e) { Usuario usuario = new Usuario(); usuario.matricula = TextBoxMatricula.Text; usuario.login = TextBoxLogin.Text; usuario.password = TextSenha.Text; usuario.permissoes = retornaListaPermissoes(); Adaptador adpt = new Adaptador(); //inserir o usuario no GoldenAcess adpt.addUsuario(usuario); /***************** Faz criptografia da senha após cadastrar *********************/ GoldenAccess goldenAccess = new GoldenAccess("http://localhost:3271/GoldenAccess.soap"); try { User usuarioAccess = goldenAccess.Authenticate(TextBoxLogin.Text, TextSenha.Text); GoldenAccessService servicoGoldenAccess = new GoldenAccessService(usuarioAccess); //servicoGoldenAccess.ChangePassword(usuario.login, Convert.ToBase64String(usuario.password)); // ChangePassword(TextBoxLogin.Text, TextSenha.Text); } catch (Exception ex) { LabelErro.Text = ex.Message; } }
/// <summary> /// Método usado para retornar o usuario através do seu username. /// </summary> /// <param name="login">O username.</param> /// <returns></returns> public Usuario retornaUsuario(string login) { Usuario usuario = new Usuario(); IDataReader reader; IDbConnection minhaConexao = new LightBaseConnection("user=lbw;password=lbw;UDB=defudb;server=localhost"); try { minhaConexao.Open(); IDbCommand comando = new LightBaseCommand("select permissoes from usuario where login_Usuario = @login_Usuario"); comando.Parameters.Add(new LightBaseParameter("login_Usuario", login)); comando.Connection = minhaConexao; reader = comando.ExecuteReader(); while (reader.Read()) { DataTable dt_Permissoes = (DataTable)reader["permissoes"]; List<Permissoes> listaPermissoes = new List<Permissoes>(); for (int i = 0; i < dt_Permissoes.Rows.Count; i++) { Permissoes perm = new Permissoes(); perm.opcao = dt_Permissoes.Rows[i]["opcao_permissao"].ToString(); perm.tipo_permissao = Convert.ToInt16(dt_Permissoes.Rows[i]["tipo_permissao"].ToString()); listaPermissoes.Add(perm); } usuario.permissoes = listaPermissoes; } } finally { minhaConexao.Close(); } return usuario; }
/// <summary> /// Método usado para inserir um usuário no sistema e na base de usuario. /// </summary> /// <param name="usuario">O usuario a ser inserido.</param> public void addUsuario(Usuario usuario) { List<Permissoes> permissoes = new List<Permissoes>(); permissoes = usuario.permissoes; IDbConnection minhaConexao = new LightBaseConnection("user=lbw;password=lbw;udb=defudb;server=localhost"); try { minhaConexao.Open(); IDbCommand meuComando = new LightBaseCommand(); string comando = "insert into usuario (matricula_Usuario, login_Usuario, senha_Usuario, permissoes) " + "values (@matricula_Usuario, @login_Usuario, @senha_Usuario"; meuComando.Connection = minhaConexao; for (int i = 0; i < permissoes.Count; i++) { comando += ", "; if (i == 0) { comando += "{"; } comando += "{@opcao_permissao" + i + ",@tipo_permissao" + i + "}"; if (permissoes.Count == (i + 1)) { comando += "}"; } } comando += ")"; meuComando.CommandText = comando; meuComando.Parameters.Add(new LightBaseParameter("matricula_Usuario", usuario.matricula)); meuComando.Parameters.Add(new LightBaseParameter("login_Usuario", usuario.login)); meuComando.Parameters.Add(new LightBaseParameter("senha_Usuario", usuario.password)); int count = 0; foreach (var perm in permissoes) { meuComando.Parameters.Add(new LightBaseParameter("opcao_permissao" + count, perm.opcao)); meuComando.Parameters.Add(new LightBaseParameter("tipo_permissao" + count, perm.tipo_permissao)); count++; } meuComando.ExecuteNonQuery(); /***************** Insere usuario no goldenAcess *********************/ comando = "insert into GoldenUsers ( Login, PassWord, Name, Disabled, NeedChangePassword, Type, RegistrationDate, RegistrationTime, OrganizationArea, IdOrganizationArea )" + "values( @Login, @PassWord, @Name, @Disabled, @NeedChangePassword, @Type, @RegistrationDate, @RegistrationTime, @OrganizationArea, @IdOrganizationArea)"; meuComando.CommandText = comando; //string data = DateTime.Now.ToString("dd/MM/yyyy"); meuComando.Parameters.Add(new LightBaseParameter("Login", usuario.login)); meuComando.Parameters.Add(new LightBaseParameter("PassWord", usuario.password)); meuComando.Parameters.Add(new LightBaseParameter("Name", usuario.login + "_" +usuario.matricula)); meuComando.Parameters.Add(new LightBaseParameter("Disabled", false)); meuComando.Parameters.Add(new LightBaseParameter("NeedChangePassword", false)); meuComando.Parameters.Add(new LightBaseParameter("Type", "USER")); meuComando.Parameters.Add(new LightBaseParameter("RegistrationDate", DateTime.Now.ToShortDateString())); meuComando.Parameters.Add(new LightBaseParameter("RegistrationTime", DateTime.Now.ToShortTimeString())); meuComando.Parameters.Add(new LightBaseParameter("OrganizationArea", "root")); meuComando.Parameters.Add(new LightBaseParameter("IdOrganizationArea", 1)); meuComando.ExecuteNonQuery(); /***************** Coloca usuario em um grupo *********************/ comando = "update GoldenUsers set Groups = {@Grupo} where Login = @Login"; meuComando.CommandText = comando; meuComando.Parameters.Add(new LightBaseParameter("Login", usuario.login)); //string[] grupos = new string[2]; //grupos[0] = "TODOS"; //grupos[1] = "RHLIM"; meuComando.Parameters.Add(new LightBaseParameter("Grupo", "RHLIM , TODOS")); meuComando.ExecuteNonQuery(); } finally { minhaConexao.Close(); } }