}//mandarMailFaleConosco() public static int mandarMailValidacaoUsuario(Usuario usuario) { SmtpClient smtpClient = new SmtpClient(DOMAIN_NAME, 25); smtpClient.Credentials = new System.Net.NetworkCredential(CREDENTIAL, MY_ID_PASSWORD); smtpClient.UseDefaultCredentials = true; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; //smtpClient.EnableSsl = true; MailMessage mail = new MailMessage(); mail.IsBodyHtml = true; //Setting From , To and CC mail.From = new MailAddress(FROM, DISPLAY_NAME); mail.To.Add(new MailAddress(usuario.Email, usuario.Apelido)); mail.Bcc.Add(new MailAddress("*****@*****.**")); //mail.CC.Add(new MailAddress("*****@*****.**")); mail.Subject = "InverShop - usuário validado"; mail.BodyEncoding = System.Text.Encoding.UTF8; mail.Body = "Obrigado por validar seu e-mail na InverShop.<br>"; mail.Body += "Agora você já pode cadastrar desejos, fazer propostas e enviar mensagens. Acesse nosso site:<br><br>"; String strLink = "https://www.invershop.com"; mail.Body += "<a href=\"" + strLink + "\" target=\"_blank\">" + strLink + "</a>"; smtpClient.Send(mail); return 0;//sucesso }
public static int mandarMailCriacaoUsuario(Usuario usuario) { SmtpClient smtpClient = new SmtpClient(DOMAIN_NAME, 25); smtpClient.Credentials = new System.Net.NetworkCredential(CREDENTIAL, MY_ID_PASSWORD); smtpClient.UseDefaultCredentials = true; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; //smtpClient.EnableSsl = true; MailMessage mail = new MailMessage(); mail.IsBodyHtml = true; //Setting From , To and CC mail.From = new MailAddress(FROM, DISPLAY_NAME); mail.To.Add(new MailAddress(usuario.Email, usuario.Apelido)); mail.Bcc.Add(new MailAddress("*****@*****.**")); //mail.CC.Add(new MailAddress("*****@*****.**")); mail.Subject = "InverShop - Instruções para validação do seu usuário"; mail.BodyEncoding = System.Text.Encoding.UTF8; mail.Body = "Obrigado por se cadastrar na InverShop.<br>"; mail.Body += "Para ativar sua conta, clique no link abaixo ou copie e cole no seu navegador:<br><br>"; String strLink = "https://www.invershop.com/validausuario.aspx?u=" + usuario.IdUsuario.ToString(); strLink += "&t=" + usuario.Token.ToString(); mail.Body += "<a href=\"" + strLink + "\" target=\"_blank\">" + strLink + "</a>"; mail.Body += "&t=" + usuario.Token.ToString(); smtpClient.Send(mail); return 0;//sucesso }
protected new void Page_Load(object sender, EventArgs e) { Guid token = Guid.Empty; int iUserId = -1; bool bLinkIncorreto = false; if (Request["u"] == null) { linkIncorreto(); } if (Request["t"] == null) { linkIncorreto(); } try { token = new Guid(System.Convert.ToString(Request["t"])); iUserId = System.Convert.ToInt32(Request["u"]); } catch { bLinkIncorreto = true; } if (bLinkIncorreto) linkIncorreto(); Usuario usuarioBusca = new Usuario(); usuarioBusca.IdUsuario = iUserId; ArrayList alTemp = DataAccess.queryUsuario(usuarioBusca, null); if (alTemp.Count == 0) { linkIncorreto(); } Usuario usuarioInformado = (Usuario)alTemp[0]; if (usuarioInformado.Token != token) { linkIncorreto(); } if (usuarioInformado.IsValid) { Session["mensagem"] = "Usuário já tinha sido validado com sucesso."; Response.Redirect("home.aspx"); } if (DataAccess.validarUsuario(usuarioInformado) != 0) { Session["mensagem"] = "Erro na validação do usuário. Tente novamente, por favor."; Response.Redirect("home.aspx"); } Session["mensagem"] = "Usuário validado com sucesso. Faça login para continuar a usar o site."; if (!Request.IsLocal) LIEmail.mandarMailValidacaoUsuario(usuarioInformado); Response.Redirect("home.aspx"); }//Page_Load()
public Proposta() { IdProposta = -1; Desejo = null; Usuario = null; DataProposta = DateTime.MinValue; TipoProposta = null; ValorProposta = -1; NumMensagens = 0; IsDeleted = 0;//para setar a busca inicialmente para considerar somente propostas não deletadas }
protected new void Page_Load(object sender, EventArgs e) { usuarioLogado = (Usuario)Session["UsuarioLogado"]; if (usuarioLogado == null) { lblMensagem.Text = "É necessário fazer login para alterar os dados do usuário."; return; } if (IsPostBack) return; lblEmail.Text = usuarioLogado.Email; TextBoxApelido.Text = usuarioLogado.Apelido; TextBoxCelular.Text = usuarioLogado.Celular; }
protected new void Page_Load(object sender, EventArgs e) { usuarioLogado = (Usuario)Session["UsuarioLogado"]; if (usuarioLogado == null) { Session["mensagem"] = "Para pesquisar propostas faça login primeiro"; if (((PageStack)Session["PageStack"]).hasPages()) { Response.Redirect(((PageStack)Session["PageStack"]).pop()); } return; } if (Session["PropostaBusca"] == null) { lblMensagem.Text = "Especifique parâmetros para a busca de propostas."; return; } Proposta propostaBusca = (Proposta)Session["PropostaBusca"]; if (propostaBusca.Usuario == null) { propostaBusca.Usuario = new Usuario(); } if (propostaBusca.Usuario.IdUsuario < 0)//o id do usuario nao foi fornecido. entao filtro pelo id do usuario do desejo: { if (propostaBusca.Desejo == null) propostaBusca.Desejo = new Desejo(); if (propostaBusca.Desejo.Usuario == null) propostaBusca.Desejo.Usuario = new Usuario(); if (Session["UsuarioLogado"] != null) { propostaBusca.Desejo.Usuario.IdUsuario = ((Usuario)usuarioLogado).IdUsuario; } else { lblMensagem.Text = "Somente propostas para um desejo seu ou propostas feitas por você podem ser mostradas."; Session["ListaPropostas"] = new ArrayList(); return; } Session["PropostaBusca"] = propostaBusca; } LIqueryParameters par = (LIqueryParameters)Session["ParamsBuscaProposta"]; Session["ListaPropostas"] = DataAccess.queryProposta((Proposta)Session["PropostaBusca"], par); Response.Redirect("ShowPropostas.aspx"); }//Page_Load()
public Desejo() { IdDesejo = -1; Usuario = null; Departamento = null; DescricaoCurta = ""; DescricaoLonga = ""; LocalBusca = null; LocalEntrega = null; DataAnuncio = DateTime.MinValue; HasPropostaSelecionada = -1; NumPropostas = 0; IdPropostaAceita = -1; IsDeleted = 0;//para setar a busca inicialmente para considerar somente desejos não deletados Avaliacao = 0; }
protected new void Page_Load(object sender, EventArgs e) { Guid token = Guid.Empty; int iUserId = -1; bool bLinkIncorreto = false; if (Request["u"] == null) { linkIncorreto(); } if (Request["t"] == null) { linkIncorreto(); } try { token = new Guid(System.Convert.ToString(Request["t"])); iUserId = System.Convert.ToInt32(Request["u"]); } catch { bLinkIncorreto = true; } if (bLinkIncorreto) linkIncorreto(); Usuario usuarioBusca = new Usuario(); usuarioBusca.IdUsuario = iUserId; ArrayList alTemp = DataAccess.queryUsuario(usuarioBusca, null); if (alTemp.Count == 0) { linkIncorreto(); } usuarioReset = (Usuario)alTemp[0]; if (usuarioReset.Token != token) { linkIncorreto(); } lblUsuario.Text = usuarioReset.Email + " / " + usuarioReset.Apelido; }//Page_Load()
protected void btnSelecionar_Click(object sender, EventArgs e) { if (DropDownListUsuario.SelectedValue == "") { Session["mensagem"] = "selecione um usuário para prosseguir."; return; } Usuario usuarioBusca = new Usuario(); usuarioBusca.IdUsuario = System.Convert.ToInt32(DropDownListUsuario.SelectedValue); ArrayList alResult = DataAccess.queryUsuario(usuarioBusca, null); if (alResult.Count == 0) { Session["mensagem"] = "usuario não encontrado."; return; } Session["UsuarioLogado"] = alResult[0]; Response.Redirect("home.aspx"); }//Page_Load()
}//btnFazerLogin_Click() protected void btnReenviarEmail_Click(object sender, EventArgs e) { Usuario usuario = new Usuario(); usuario.Email = TextBoxEmail.Text; ArrayList alTemp = DataAccess.queryUsuario(usuario, null); if (alTemp.Count == 0) return; usuario = (Usuario)alTemp[0]; if (!Request.IsLocal) { if (LIEmail.mandarMailCriacaoUsuario(usuario) == 0) { lblMensagem.Text = "Foi enviado um e-mail para você validar o seu login."; } else { lblMensagem.Text = "Ocorreu um erro no reenvio do e-mail de validação. Tente mais tarde por favor. Pedimos desculpas pelo inconveniente."; } } }
protected void btnFazerLogin_Click(object sender, EventArgs e) { Usuario usuarioBusca = new Usuario(); usuarioBusca.Email = TextBoxEmail.Text; ArrayList alTemp = DataAccess.queryUsuario(usuarioBusca, null); if (alTemp.Count == 0) { ErroLogin(); } Usuario usuario = (Usuario)alTemp[0]; if (!usuario.IsValid) { lblMensagem.Text = "O usuário informado ainda não foi validado. Siga as instruções enviadas ao seu e-mail para validá-lo."; lblMensagem.Text += " Se quiser receber novo e-mail, clique no botão \"Reenviar e-mail de validação\" abaixo."; btnFazerLogin.Visible = false; LinkButtonEsqueciSenha.Visible = false; btnReenviarEmail.Visible = true; return; } if (DataAccess.ValidateSHA1HashData(usuario.Salt + TextBoxSenha.Text, usuario.Password)) { //faço isso abaixo porque, o login bem-sucedido pode ter sido feito após o usuário ter pedido para resetar a senha. //O usuário pode ter esquecido e se lembrado da senha logo em seguida, por exemplo. DataAccess.validarUsuario(usuario); Session["UsuarioLogado"] = usuario; Session["mensagem"] = "Bem-vindo, " + usuario.Email + "!"; Response.Redirect("home.aspx"); } else { ErroLogin(); } }//btnFazerLogin_Click()
}//alterarSenhaUsuario() /// <summary> /// Retorna: 0 se sucesso, diferente de 0 se erro. /// </summary> /// <param name="usuario"></param> /// <returns></returns> public static int alterarDadosUsuario(Usuario usuario) { SqlConnection conn = null; SqlCommand cmd = null; SqlTransaction trans = null; String strSql = "UPDATE Usuario set apelido = '" + Utils.limpaString(usuario.Apelido) + "', celular = '"; strSql += Utils.limpaString(usuario.Celular) + "'"; strSql += " WHERE id_usuario = " + usuario.IdUsuario.ToString(); try { conn = new SqlConnection(ConnString); conn.Open(); cmd = conn.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = strSql; trans = conn.BeginTransaction(); cmd.Transaction = trans; cmd.ExecuteNonQuery(); trans.Commit(); return 0;//sucesso } catch { //if (dr != null) dr.Close(); trans.Rollback(); return 1;//erro } finally { //if (dr != null) dr.Close(); if (conn != null) conn.Close(); } }//alterarDadosUsuario()
protected new void Page_Load(object sender, EventArgs e) { //if (IsPostBack) return; TextBoxNovaURL.Visible = false; btnNovaURLCancelar.Visible = false; btnNovaURLOk.Visible = false; if (Utils.HabilitarMobile && Request.Browser.IsMobileDevice) { TextBoxDescricao.Height = 300; } if (String.IsNullOrEmpty(Request["id_desejo"])) { //desejo = (Desejo)Session["Desejo"]; } else { desejo = Desejo.getDesejoById(System.Convert.ToInt64(Request["id_desejo"])); } if (desejo == null) { lblMensagem.Text = "Desejo não encontrado."; return; } else { Session["Desejo"] = desejo; } lblNomeData.Text = "Desejo feito pelo(a) usuário(a) " + desejo.Usuario.Apelido + " em "; lblNomeData.Text += Utils.formatDatetimeToScreen3(desejo.DataAnuncio); lblTitulo.Text = desejo.DescricaoCurta; TextBoxDescricao.Text = desejo.DescricaoLonga; lblDepartamento.Text = desejo.Departamento.Nome; //lblOndeEncontrar.Text = (LocalDesejo.getLocalDesejoById(desejo.IdLocalBusca)).NomeLocal; //lblOndeEntregar.Text = (LocalDesejo.getLocalDesejoById(desejo.IdLocalEntrega)).NomeLocal; lblOndeEncontrar.Text = desejo.LocalBusca.NomeLocal; lblOndeEntregar.Text = desejo.LocalEntrega.NomeLocal; //lblPrecoMaximo.Text = Utils.formatDoubleToScreen(desejo.PrecoMaximo); usuarioLogado = (Usuario)Session["UsuarioLogado"]; if (desejo.NumPropostas == 0) { lblNumPropostas.Text = "Esse desejo ainda não recebeu propostas."; btnMostrarPropostas.Visible = false; btnMostrarPropostas.Enabled = false; } else { lblNumPropostas.Text = "Esse desejo já recebeu " + desejo.NumPropostas.ToString() + " proposta(s)."; if (usuarioLogado != null) { if (desejo.Usuario.IdUsuario == usuarioLogado.IdUsuario) { btnMostrarPropostas.Visible = true; btnMostrarPropostas.Enabled = true; } else { btnMostrarPropostas.Visible = false; btnMostrarPropostas.Enabled = false; } } else { btnMostrarPropostas.Visible = false; btnMostrarPropostas.Enabled = false; } } if (usuarioLogado != null) { if (desejo.Usuario.IdUsuario == usuarioLogado.IdUsuario) { btnApagarDesejo.Visible = true; btnApagarDesejo.Enabled = true; btnAddURL.Visible = true; btnAddURL.Enabled = true; } else { btnApagarDesejo.Visible = false; btnApagarDesejo.Enabled = false; btnFazerProposta.Visible = true; btnFazerProposta.Enabled = true; btnAddURL.Visible = false; btnAddURL.Enabled = false; } } else { btnApagarDesejo.Visible = false; btnApagarDesejo.Enabled = false; btnAddURL.Visible = false; btnAddURL.Enabled = false; lblMensagem.Text = "Para fazer propostas, faça login primeiro."; } ArrayList alURLs = DataAccess.queryURLDesejo(desejo); if (alURLs.Count != 0) { iTemp = 0; vetColors = new System.Drawing.Color[2]; vetColors[0] = System.Drawing.Color.LightCyan;//FromArgb(255, 255, 255); vetColors[1] = System.Drawing.Color.LightGray; } bool bMostrarBotaoApagarURL = false; if (usuarioLogado != null) { if (desejo.Usuario.IdUsuario == usuarioLogado.IdUsuario) { bMostrarBotaoApagarURL = true; } } foreach (URLDesejo url in alURLs) { TableRow row = new TableRow(); row.BackColor = vetColors[iTemp]; iTemp = 1 - iTemp; TableCell cell = new TableCell(); HyperLink hl = new HyperLink(); hl.Text = Utils.truncateURL(url.URL); hl.NavigateUrl = url.URL; hl.Target = "_blank"; cell.Controls.Add(hl); row.Cells.Add(cell); cell = new TableCell(); if (bMostrarBotaoApagarURL) { ImageButton imgBtnApagarURL = new ImageButton(); imgBtnApagarURL.ImageUrl = "~/Images/trashbasket.jpg"; imgBtnApagarURL.ID = "btnapagarurl_" + url.Ordinal.ToString(); imgBtnApagarURL.Click += imgBtnApagarURL_Click; cell.Controls.Add(imgBtnApagarURL); } else { cell.Text = ""; } row.Cells.Add(cell); tblURLsDesejo.Rows.Add(row); }//foreach }//Page_Load()
}//salvarMensagem() /// <summary> /// Retorna: /// Sucesso: 0 /// Erro: diferente de zero /// </summary> /// <param name="proposta"></param> /// <param name="quemVisualizou"></param> /// <returns></returns> public static int atualizarDataViewMensagem(Proposta proposta, Usuario.EnumQuem quemVisualizou) { SqlConnection conn = null; SqlCommand cmd = null; SqlTransaction trans = null; //SqlDataReader dr = null; String strSql = "UPDATE Proposta SET "; if (quemVisualizou == Usuario.EnumQuem.PEDINTE) { strSql += "data_view_pedinte"; } else { strSql += "data_view_proponente"; } strSql += " = GETDATE() WHERE id_proposta = " + proposta.IdProposta.ToString(); try { conn = new SqlConnection(ConnString); conn.Open(); cmd = conn.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = strSql; trans = conn.BeginTransaction(); cmd.Transaction = trans; cmd.ExecuteNonQuery(); trans.Commit(); return 0;//sucesso } catch { trans.Rollback(); return 1;//erro } finally { if (conn != null) conn.Close(); } }//atualizarDataViewMensagem()
}//populateLocalDesejo() private static Usuario populateUsuario(SqlDataReader dr, String prefixo) { /* id_usuario apelido email celular password salt token data_criacao */ Usuario usuarioReturn = new Usuario(); usuarioReturn.IdUsuario = System.Convert.ToInt32(dr[prefixo + "id_usuario"]); usuarioReturn.Apelido = System.Convert.ToString(dr[prefixo + "apelido"]).Trim(); usuarioReturn.Email = System.Convert.ToString(dr[prefixo + "email"]); if (!dr.IsDBNull(dr.GetOrdinal(prefixo + "celular"))) { usuarioReturn.Celular = System.Convert.ToString(dr[prefixo + "celular"]).Trim(); } else { usuarioReturn.Celular = ""; } /* byte[] byteTemp = (byte[])dr[prefixo + "password"]; usuarioReturn.Password = byteArray2String(byteTemp); byteTemp = (byte[])dr[prefixo + "salt"]; usuarioReturn.Salt = byteArray2String(byteTemp); */ usuarioReturn.Password = System.Convert.ToString(dr[prefixo + "password"]); usuarioReturn.Salt = System.Convert.ToString(dr[prefixo + "salt"]); if (!dr.IsDBNull(dr.GetOrdinal(prefixo + "token"))) { usuarioReturn.Token = new Guid(System.Convert.ToString(dr[prefixo + "token"])); } else { usuarioReturn.Token = Guid.Empty; } if (!dr.IsDBNull(dr.GetOrdinal(prefixo + "data_criacao"))) { usuarioReturn.DataCriacao = System.Convert.ToDateTime(dr[prefixo + "data_criacao"]); } else { usuarioReturn.DataCriacao = DateTime.MinValue; } return usuarioReturn; }//populateUsuario()
protected void Page_Load(object sender, EventArgs e) { if (Request.Browser.IsMobileDevice & Utils.HabilitarMobile) { lblIsMobile.Text = "Versão Mobile"; } else { lblIsMobile.Text = "Versão Desktop"; } pageStack = (PageStack)Session["PageStack"]; if (pageStack == null) { LinkButtonVoltar.Visible = false; } else { if (pageStack.hasPages()) { LinkButtonVoltar.Visible = true; } else { LinkButtonVoltar.Visible = false; } } usuarioLogado = (Usuario)Session["UsuarioLogado"]; lblMensagem.Text = (String)Session["mensagem"]; Session["mensagem"] = ""; if (usuarioLogado != null) { LinkButtonUsuarioLogado.Text = usuarioLogado.Apelido; LinkButtonUsuarioLogado.Enabled = true; btnLogout.Visible = true; btnLogin.Visible = false; LinkButtonMeusDesejos.Visible = true; HyperLinkCriarDesejo.Visible = true; LinkButtonPropostasRecebidas.Visible = true; LinkButtonPropostasFeitas.Visible = true; } else { LinkButtonUsuarioLogado.Text = "Não logado"; LinkButtonUsuarioLogado.Enabled = false; btnLogout.Visible = false; btnLogin.Visible = true; LinkButtonMeusDesejos.Visible = false; HyperLinkCriarDesejo.Visible = false; LinkButtonPropostasRecebidas.Visible = false; LinkButtonPropostasFeitas.Visible = false; } if (Session["PedirConfirmacao"] != null) { if ((bool)Session["PedirConfirmacao"]) { btnConfirm.Visible = true; btnCancel.Visible = true; } else { btnConfirm.Visible = false; btnCancel.Visible = false; } } else { btnConfirm.Visible = false; btnCancel.Visible = false; } Session["PedirConfirmacao"] = false; desejo = (Desejo)Session["Desejo"]; if (desejo == null) { LinkButtonUltimoDesejo.Visible = false; lblUltimoDesejo.Visible = false; } else { lblUltimoDesejo.Visible = true; LinkButtonUltimoDesejo.Visible = true; LinkButtonUltimoDesejo.Text = Utils.truncateString(desejo.DescricaoCurta); LinkButtonUltimoDesejo.Click += LinkButtonUltimoDesejo_Click; } }//Page_Load()
protected new void Page_Load(object sender, EventArgs e) { usuarioLogado = (Usuario)Session["UsuarioLogado"]; if (usuarioLogado == null) { Session["mensagem"] = "É necessário fazer login para visualizar uma proposta."; return; } if (Request["id_proposta"] != null) { proposta = new Proposta(); proposta.IdProposta = System.Convert.ToInt64(Request["id_proposta"]); } if (proposta == null) proposta = (Proposta)Session["Proposta"]; proposta.Desejo = new Desejo();//faço isso para filtrar se o desejo tiver sido deletado buscarProposta(); if (proposta == null) { Session["mensagem"] = strNaoEncontrada; btnAceitarProposta.Visible = false; btnDeleteProposta.Visible = false; btnDesfazerAceitacao.Visible = false; btnVerMensagens.Visible = false; return; } if (proposta.Usuario.IdUsuario != usuarioLogado.IdUsuario) { if (proposta.Desejo.Usuario.IdUsuario != usuarioLogado.IdUsuario) { Session["mensagem"] = "Somente propostas feitas por você ou para seus desejos podem ser visualizadas."; return; } else { meuPapel = Usuario.EnumQuem.PEDINTE; } } else { meuPapel = Usuario.EnumQuem.PROPONENTE; } LinkButtonDesejo.Text = Utils.truncateString(proposta.Desejo.DescricaoCurta); lblDataProposta.Text = Utils.formatDatetimeToScreen3(proposta.DataProposta); lblNomeUsuarioProposta.Text = proposta.Usuario.Apelido; lblTipoProposta.Text = proposta.TipoProposta.Descricao; lblValor.Text = Utils.formatDoubleToScreen(proposta.ValorProposta); lblNumMensagens.Text = "Essa proposta recebeu " + proposta.NumMensagens.ToString() + " mensagens."; btnVerMensagens.Text = "Ver mensagens / Enviar Mensagem"; if (proposta.Desejo.IdPropostaAceita == proposta.IdProposta)//essa proposta está selecionada { lblPropostaSelecionada.Text = "Essa proposta foi selecionada."; btnAceitarProposta.Visible = false; btnDesfazerAceitacao.Visible = true; lblAvaliarProposta.Visible = true; radioButtonListAvaliacao.Visible = true; } else { if (proposta.Desejo.IdPropostaAceita < 0)//nenhuma proposta foi selecionada { btnAceitarProposta.Visible = true; btnDesfazerAceitacao.Visible = false; } else { lblPropostaSelecionada.Text = "Uma outra proposta foi selecionada."; btnAceitarProposta.Visible = true; btnDesfazerAceitacao.Visible = false; } } if (proposta.Desejo.Usuario.IdUsuario != usuarioLogado.IdUsuario) { btnAceitarProposta.Visible = false; btnDesfazerAceitacao.Visible = false; lblAvaliarProposta.Visible = false; radioButtonListAvaliacao.Visible = false; } }//Page_Load()
}//criarUsuario() public static int alterarSenhaUsuario(Usuario usuario) { //SqlDataReader dr = null; SqlConnection conn = null; SqlCommand cmd = null; SqlTransaction trans = null; RNGCryptoServiceProvider rnd; //String strSql = "UPDATE id_usuario from Usuario where email='" + novousuario.Email + "'"; try { conn = new SqlConnection(ConnString); conn.Open(); cmd = conn.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; rnd = new RNGCryptoServiceProvider(); byte[] salt = new byte[20]; rnd.GetBytes(salt); rnd.Dispose(); String strSalt = byteArray2String(salt); cmd.CommandText = "UPDATE Usuario set password = '******', salt='" + strSalt + "' where id_usuario = "; cmd.CommandText += usuario.IdUsuario.ToString(); trans = conn.BeginTransaction(); cmd.Transaction = trans; cmd.ExecuteNonQuery(); trans.Commit(); return 0;//sucesso } catch { //if (dr != null) dr.Close(); trans.Rollback(); return 1;//erro } finally { //if (dr != null) dr.Close(); if (conn != null) conn.Close(); } }//alterarSenhaUsuario()
public static EnumUserCreationResult criarUsuario(Usuario novousuario) { /* id_usuario apelido email password salt celular */ SqlDataReader dr = null; SqlConnection conn = null; SqlCommand cmd = null; SqlTransaction trans = null; RNGCryptoServiceProvider rnd; String strSql = "SELECT id_usuario from Usuario where email='" + novousuario.Email + "'"; try { conn = new SqlConnection(ConnString); conn.Open(); cmd = conn.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = strSql; trans = conn.BeginTransaction(); cmd.Transaction = trans; dr = cmd.ExecuteReader(); if (dr.Read()) { dr.Close(); trans.Rollback(); return EnumUserCreationResult.EMAIL_JA_EXISTENTE; } dr.Close(); strSql = "SELECT id_usuario from Usuario where apelido='" + novousuario.Apelido + "'"; cmd.CommandText = strSql; dr = cmd.ExecuteReader(); if (dr.Read()) { dr.Close(); trans.Rollback(); return EnumUserCreationResult.APELIDO_JA_EXISTENTE; } dr.Close(); strSql = "INSERT into Usuario(apelido, email, celular, password, salt, token) output Inserted.id_usuario VALUES ('"; strSql += Utils.limpaString(novousuario.Apelido) + "','" + Utils.limpaString(novousuario.Email) + "','"; strSql += Utils.limpaString(novousuario.Celular) + "'"; // +"',convert(binary(20),'"; rnd = new RNGCryptoServiceProvider(); byte[] salt = new byte[20]; rnd.GetBytes(salt); rnd.Dispose(); String strSalt = byteArray2String(salt); //strSql += GetSHA1HashData(strSalt + novousuario.Password) + "'), convert(binary(20),'" + strSalt + "'),'"; //strSql += GetSHA1HashData(novousuario.Password) + "'), convert(binary(20),'" + strSalt + "'),'"; strSql += ",'" + GetSHA1HashData(strSalt + novousuario.Password) + "'"; strSql += ",'" + strSalt + "'"; novousuario.Token = Guid.NewGuid(); strSql += ",'" + novousuario.Token.ToString() + "')"; cmd.CommandText = strSql; dr = cmd.ExecuteReader(); if (dr.Read()) { novousuario.IdUsuario = System.Convert.ToInt32(dr["id_usuario"]); } dr.Close(); trans.Commit(); return EnumUserCreationResult.SUCCESS; } catch { if (dr != null) dr.Close(); trans.Rollback(); return EnumUserCreationResult.UNKNOWN_ERROR; } finally { if (dr != null) dr.Close(); if (conn != null) conn.Close(); } }//criarUsuario()
protected void LinkButton1_Click(object sender, EventArgs e) { if (TextBoxEmail.Text == "") { lblMensagem.Text = "Preencha o e-mail para resetar sua senha."; return; } Usuario usuarioBusca = new Usuario(); usuarioBusca.Email = TextBoxEmail.Text; ArrayList alTemp = DataAccess.queryUsuario(usuarioBusca, null); if (alTemp.Count != 0) { Usuario usuarioEncontrado = (Usuario)alTemp[0]; usuarioEncontrado.Token = Guid.NewGuid(); if (DataAccess.resetUsuario(usuarioEncontrado) == 0) { if (!Request.IsLocal) LIEmail.mandarMailResetSenhaUsuario(usuarioEncontrado); } }//if lblMensagem.Text = "Se o e-mail informado estiver correto, foi enviado um e-mail com as instruções para resetar a sua senha."; //Response.Redirect("login.aspx"); }
}//alterarDadosUsuario() public static int validarUsuario(Usuario usuarioValidar) { //SqlDataReader dr = null; SqlConnection conn = null; SqlCommand cmd = null; SqlTransaction trans = null; String strSql = "UPDATE Usuario set token = NULL,"; strSql += " data_criacao = case when (data_criacao is null ) then GETDATE() else data_criacao end"; strSql += " where id_usuario = "; strSql += usuarioValidar.IdUsuario.ToString(); try { conn = new SqlConnection(ConnString); conn.Open(); cmd = conn.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = strSql; trans = conn.BeginTransaction(); cmd.Transaction = trans; cmd.ExecuteNonQuery(); trans.Commit(); return 0;//sucesso } catch { //if (dr != null) dr.Close(); trans.Rollback(); return 1;//erro } finally { //if (dr != null) dr.Close(); if (conn != null) conn.Close(); } }//validarUsuario()
}//validarUsuario() /// <summary> /// o token do usuarioReset tem que estar preenchido com um valor diferente de empty! /// </summary> /// <param name="usuarioReset"></param> /// <returns></returns> public static int resetUsuario(Usuario usuarioReset) { //SqlDataReader dr = null; SqlConnection conn = null; SqlCommand cmd = null; SqlTransaction trans = null; String strSql = "UPDATE Usuario set token = '" + usuarioReset.Token.ToString(); strSql += "' where id_usuario = "; strSql += usuarioReset.IdUsuario.ToString(); try { conn = new SqlConnection(ConnString); conn.Open(); cmd = conn.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = strSql; trans = conn.BeginTransaction(); cmd.Transaction = trans; cmd.ExecuteNonQuery(); trans.Commit(); return 0;//sucesso } catch { //if (dr != null) dr.Close(); trans.Rollback(); return 1;//erro } finally { //if (dr != null) dr.Close(); if (conn != null) conn.Close(); } }//resetUsuario()
protected void btnOK_Click(object sender, EventArgs e) { lblMensagem.Text = ""; if (TextBoxEmail.Text.Trim() == "") { lblMensagem.Text = "O e-mail não pode estar vazio."; return; } if (!checkApelido()) { lblMensagem.Text = "O apelido só pode conter letras, números e underlines (_), sem espaço."; return; } if (TextBoxSenha1.Text.Length < 8) { lblMensagem.Text = "A senha precisa ter no mínimo 8 caracteres."; return; } if (TextBoxSenha1.Text.Length > 20) { lblMensagem.Text = "A senha precisa ter no máximo 20 caracteres."; return; } if (TextBoxSenha1.Text != TextBoxSenha2.Text) { lblMensagem.Text = "As senhas precisam coincidir."; return; } /* if (TextBoxCelular.Text.Length > 14) { lblMensagem.Text = "O número do celular só pode ter 14 algarismos no máximo."; return; } */ if (!CheckBoxAceitarTermos.Checked) { lblMensagem.Text = "Você precisa aceitar os termos de uso do site para continuar."; return; } /* if (!Utils.ValidateReCaptcha()) { lblMensagem.Text = "Preencha corretamente o texto de validação."; return; } */ Usuario novoUsuario = new Usuario(); novoUsuario.Apelido = TextBoxApelido.Text; //novoUsuario.Celular = TextBoxCelular.Text; novoUsuario.Email = TextBoxEmail.Text; novoUsuario.Password = TextBoxSenha1.Text; DataAccess.EnumUserCreationResult resultado = DataAccess.criarUsuario(novoUsuario); switch (resultado) { case DataAccess.EnumUserCreationResult.APELIDO_JA_EXISTENTE: lblMensagem.Text = "Essa apelido já existe. Escolha outro por favor."; break; case DataAccess.EnumUserCreationResult.EMAIL_JA_EXISTENTE: lblMensagem.Text = "O e-mail informado já existe no sistema. Se o e-mail for seu, tente fazer logon."; break; case DataAccess.EnumUserCreationResult.UNKNOWN_ERROR: lblMensagem.Text = "Erro de sistema. Tente outra vez, por favor."; break; case DataAccess.EnumUserCreationResult.SUCCESS: //lblMensagem.Text = "Usuário criado com sucesso."; Session["mensagem"] = "Obrigado por se cadastrar. Por favor, siga as instruções enviadas para seu e-mail."; if (!Request.IsLocal) LIEmail.mandarMailCriacaoUsuario(novoUsuario); Response.Redirect("home.aspx"); break; }//switch }//btnOK_Click()
}//resetUsuario() public static ArrayList queryUsuario(Usuario usuarioBusca, LIqueryParameters paramsBusca) { ArrayList alReturn = null; SqlDataReader dr = null; SqlConnection conn = null; SqlCommand cmd = null; bool bWhere = false; int iTemp; String strSql = "SELECT"; String strSelect = " U.*"; if (paramsBusca != null) { if (paramsBusca.Top > 0) { strSql += " TOP " + paramsBusca.Top.ToString() + strSelect; } else { strSql += strSelect; } } else { strSql += strSelect; } strSql += " FROM Usuario U"; if (usuarioBusca.IdUsuario >= 0) { if (bWhere) { strSql += " AND "; } else { strSql += " WHERE "; bWhere = true; } strSql += "U.id_usuario = " + usuarioBusca.IdUsuario.ToString(); }//if if (usuarioBusca.Email != "") { if (bWhere) { strSql += " AND "; } else { strSql += " WHERE "; bWhere = true; } strSql += "U.email = '" + usuarioBusca.Email + "'"; }//if if (paramsBusca != null) { if (paramsBusca.OrderBy.Count != 0) { strSql += " ORDER BY "; iTemp = 0; foreach (ColumnOrder col in paramsBusca.OrderBy) { if (iTemp != 0) strSql += ","; strSql += "U." + col.ColumnName; if (col.Order == ColumnOrder.OrderType.ASC) { strSql += " ASC"; } else { strSql += " DESC"; } iTemp++; } } } try { conn = new SqlConnection(ConnString); conn.Open(); cmd = conn.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = strSql; dr = cmd.ExecuteReader(); alReturn = new ArrayList(); while (dr.Read()) { alReturn.Add(populateUsuario(dr, "")); }//while return alReturn; } catch(Exception)// ex) { /* ArrayList alErro = new ArrayList(); Usuario userLixo = new Usuario(); userLixo.Apelido = ex.Message; alErro.Add(userLixo); return alErro; */ return new ArrayList();//se deu erro então retorna um arraylist vazio } finally { if (dr != null) { dr.Close(); } if (conn != null) { conn.Close(); } } }//queryUsuario()
protected new void Page_Load(object sender, EventArgs e) { TableRow row; TableCell cell; proposta = (Proposta)Session["Proposta"]; if (proposta == null) { Session["mensagem"] = "Proposta não encontrada."; disableAll(); return; } usuarioLogado = (Usuario)Session["UsuarioLogado"]; if (usuarioLogado == null) { Session["mensagem"] = "Para visualizar mensagens, faça login primeiro"; disableAll(); return; } if ((proposta.Usuario.IdUsuario != usuarioLogado.IdUsuario) && (proposta.Desejo.Usuario.IdUsuario != usuarioLogado.IdUsuario)) { Session["mensagem"] = "Você não tem permissão para visualizar mensagens para essa proposta"; disableAll(); return; } LinkButtonDesejo.Text = "Desejo: " + Utils.truncateString(proposta.Desejo.DescricaoCurta); LinkButtonProposta.Text = "Proposta feita por " + proposta.Usuario.Apelido + " às " + Utils.formatDatetimeToScreen2(proposta.DataProposta); if (usuarioLogado.IdUsuario == proposta.Usuario.IdUsuario) { meuPapel = Usuario.EnumQuem.PROPONENTE; } else { if (usuarioLogado.IdUsuario == proposta.Desejo.Usuario.IdUsuario) { meuPapel = Usuario.EnumQuem.PEDINTE; } } ArrayList alMensagens = DataAccess.queryMensagens(proposta, null); if (alMensagens.Count == 0) { Session["mensagem"] = "Sem mensagens para essa proposta"; return; } foreach (Mensagem mensagem in alMensagens) { row = new TableRow(); if (mensagem.QuemPostou == meuPapel)//a mensagem é minha { row.BackColor = System.Drawing.Color.FromArgb(200, 200, 200); cell = new TableCell(); cell.Text = "Você às " + Utils.formatDatetimeToScreen2(mensagem.DataHoraMensagem); row.Cells.Add(cell); cell = new TableCell(); //cell.Style.Add("background-image", "url('Images/balao_esquerda.jpg')"); cell.Text = mensagem.Texto; row.Cells.Add(cell); cell = new TableCell(); cell.BackColor = System.Drawing.Color.FromArgb(255, 255, 255); row.Cells.Add(cell); } else//a mensagem é do outro. quem é o outro? { row.BackColor = System.Drawing.Color.FromArgb(160, 160, 160); cell = new TableCell(); cell.BackColor = System.Drawing.Color.FromArgb(255, 255, 255); row.Cells.Add(cell); cell = new TableCell(); cell.Text = mensagem.Texto; row.Cells.Add(cell); cell = new TableCell(); if (meuPapel == Usuario.EnumQuem.PEDINTE)//eu sou o pedinte. logo, o outro é p proponente: { cell.Text = mensagem.Proposta.Usuario.Apelido + " às " + Utils.formatDatetimeToScreen2(mensagem.DataHoraMensagem); } else//eu sou o proponente. logo, o outro é o pedinte: { cell.Text = mensagem.Proposta.Desejo.Usuario.Apelido + " às " + Utils.formatDatetimeToScreen2(mensagem.DataHoraMensagem); } row.Cells.Add(cell); } tblResultado.Rows.Add(row); }//foreach DataAccess.atualizarDataViewMensagem(proposta, meuPapel); lblNovaMensagem.Text = "Nova mensagem (máximo de " + Mensagem.TamanhoMaximoText.ToString() + " caracteres):"; //TextBoxNovaMensagem.MaxLength = Mensagem.TamanhoMaximoText; }//Page_Load()
}//mandarMailResetSenhaUsuario() public static int mandarMailSenhaAlterada(Usuario usuario) { SmtpClient smtpClient = new SmtpClient(DOMAIN_NAME, 25); smtpClient.Credentials = new System.Net.NetworkCredential(CREDENTIAL, MY_ID_PASSWORD); smtpClient.UseDefaultCredentials = true; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; //smtpClient.EnableSsl = true; MailMessage mail = new MailMessage(); mail.IsBodyHtml = true; //Setting From , To and CC mail.From = new MailAddress(FROM, DISPLAY_NAME); mail.To.Add(new MailAddress(usuario.Email, usuario.Apelido)); //mail.CC.Add(new MailAddress("*****@*****.**")); mail.Subject = "InverShop - senha alterada"; mail.BodyEncoding = System.Text.Encoding.UTF8; mail.Body = "Prezado " + usuario.Apelido + ",<br><br>"; mail.Body += "Sua senha foi alterada na InverShop (invershop.com).<br>"; mail.Body+="Se foi você quem fez isso, pode apagar esse e-mail sem problemas.<br>"; mail.Body += "Caso contrário, alguém pode ter alterado a sua senha. Nesse caso, entre no site invershop.com e altere sua senha."; smtpClient.Send(mail); return 0;//sucesso }