No artigo de hoje vamos continuar nosso projeto para criar uma aplicação ASP .NET Web Forms para acessar o MySQL, cifrar e decifrar destes, verificar palavras proibidas e obter o IP do visitante da página. |
Na primeira parte definimos o banco de dados e a tabela no MySQL, instalamos o conector/NET para o MySQL e criamos as classes Conexao.cs, Cripto.cs e Censura.cs que darão suporte às funcionalidades que iremos agora implementar.
Implementando as funcionalidades no projeto ASP .NET
Vamos então implementar as funcionalidades em nosso projeto ASP .NET. Para isso vamos abrir a nossa solução no Visual Studio e a seguir abrir o arquivo Default.aspx.cs e começar definindo a variável arquivoPalavrasProibidas que irá armazenar o caminho e local do arquivo XML que contém a lista de palavras proibidas:
string arquivoPalavrasProibidas = @"c:\dados\ListaPalavrasProibidas.xml";
Após isso no evento Load da página vamos incluir o código abaixo:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
try
{
getIpUsuario();
gdvUsuarios.DataSource = Conexao.ExecutaComando("SELECT * FROM Usuarios", Conexao.AbreConexao());
gdvUsuarios.DataBind();
}
catch (Exception ex)
{
lblmsg.Text = ex.Message;
}
}
}
|
Neste código verificamos se não ocorre um postback e chamamos a rotina getIpUsuario() cujo código temos a seguir:
private void getIpUsuario()
{
lblinf.Text = "Seu Endereço IP = " + getEnderecoIP();
}
|
Este código exibe o IP do visitante no controle Label (ID=lblinf) obtido pela rotina getEnderecoIP() que tem o seguinte código:
protected string getEnderecoIP()
{
string strEnderecoIP;
strEnderecoIP = Request.ServerVariables ["HTTP_X_FORWARDED_FOR"];
if (strEnderecoIP == null)
strEnderecoIP = Request.ServerVariables["REMOTE_ADDR"];
return strEnderecoIP.Trim();
}
|
No código primeiro tentamos obter o endereço IP usando a variável HTTP_X_FORWARDED_FOR e se o valor for nulo então usamos variável de ambiente REMOTE_ADDR.
|
Após exibir o IP do visitante acessamos o banco de dados MySQL e exibimos as informações da tabela Usuarios no controle GridView chamando o método estático ExecutaComando:
gdvUsuarios.DataSource = Conexao.ExecutaComando("SELECT * FROM Usuarios", Conexao.AbreConexao());
Este método executa a consulta SQL - SELECT * FROM Usuarios -selecionando todos os usuários cadastrados na tabela Usuarios.
No evento Click do botão de comando Submeter vamos incluir o código a seguir:
protected void Submeter(object sender, EventArgs e)
{
try
{
if (string.IsNullOrEmpty(txtUsuario.Text) || txtUsuario.Text.Length < 5)
{
lblmsg.Text = "Informe o nome do usuário com no mínimo 5 caracteres";
return;
}
if (string.IsNullOrEmpty(txtSenha.Text) || txtSenha.Text.Length < 5)
{
lblmsg.Text = "Informe a senha com no mínimo 5 caracteres.";
return;
}
if (ValidaTexto(txtUsuario.Text) && ValidaTexto(txtSenha.Text))
{
Usuario _usuario = new Usuario();
_usuario.Nome = txtUsuario.Text.Trim();
_usuario.Senha = txtSenha.Text;
Conexao.ExecutaComando("INSERT INTO Usuarios(Usuario,Senha) VALUES(@Usuario, @Senha)", Conexao.AbreConexao(), _usuario);
Response.Redirect(Request.Url.AbsoluteUri);
}
else
{
lblmsg.Text = "Esse nome não é permitido, tente usar um nome diferente";
}
}
catch (Exception ex)
{
lblmsg.Text = ex.Message;
}
}
|
O código acima verifica se o nome do usuário e a senha foram informados e possuem no mínimo 5 caracteres para em seguidas chamar o método ValidaTexto() passando o nome do usuário e a senha e verificando se os valores informados não constam da lista de palavras proibidas.
A seguir temos o código do método ValidaTexto() :
public bool ValidaTexto(string texto)
{
if (Censura.IsPalavraProibida(texto, arquivoPalavrasProibidas))
{
//a palavra é proibida
return false;
}
else
{
//palavra permitida
return true;
}
}
|
O código usa o método IsPalavraProibida() da classe Censura passando o texto a ser verificado e a variável que contém o nome e caminho do arquivo da lista de palavras.
Para exibir a senha decifrada no controle GridView usamos o evento OnRowDataBound() com o seguinte código:
protected void OnRowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[2].Text = Cripto.Decifra(e.Row.Cells[2].Text);
}
}
catch
{ }
}
|
Aqui verificamos se a linha é do tipo DataRow() e usamos o método Decifra() da classe Cripto() para exibir a senha decifrada na terceira coluna do GridView.
Executando o projeto e informando alguns valores teremos o seguinte resultado:
Pegue o projeto completo aqui: ASPNET_MySQL_CifraDecifra.zip
Tito 3:8 Fiel é esta palavra, e quero que a proclames com firmeza para que os que creem em Deus procurem aplicar-se às boas obras. Essas coisas são boas e proveitosas aos homens.
Tito 3:9 Mas evita questões tolas, genealogias, contendas e debates acerca da lei; porque são coisas inúteis e vãs.
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#