Depois de muito tempo sem postar nada, hoje vou demonstrar como utilizar um arquivo XML para validar login de usuário.
Para começar vamos criando um simples arquivo xml com a seguinte estrutura abaixo:
<?xml version="1.0" encoding="utf-8" ?>
<dados>
<acesso>
<usuario>administrador</usuario>
<senha>123</senha>
</acesso>
</dados>
Para criar o arquivo xml clique com botão direito em cima do nome do projeto -> Add -> New Item, selecione a opção Data na lista a esquerda e escolha o item XML File.
Feito isso, com o arquivo xml criado, adicione um Web Form ao projeto renomeie para Acesso.aspx e o deixe conforme abaixo:
<form id="form1" runat="server">
<div>
<center>
Usuario:<asp:TextBox ID="txtLogin" runat="server"></asp:TextBox>
Senha:<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox></br></br>
<asp:LinkButton ID="btnAcesso" runat="server">Validar Acesso</asp:LinkButton>
</center>
</div>
</form>
Com a estrutura feita, vamos para a codificação, primeiro vamos criar uma classe que ira retornar verdade/false (Booleana) baseada no parametros de usuario e senha que enviaremos.
Veja na classe abaixo que ela recebe dois parametros e retorna um Boolean.
Não esquece de importar a classe using System.Xml para utilizar objeto XML.
private string sMensagemRetorno = string.Empty; //variavel criada para receber as mensagens de erro de acesso ou except do TRY/CATCH
private Boolean ValidarAcesso(string _login, string _password)
{
Boolean acessoLiberado = false;
try
{
string sCaminhoDoArquivo = HttpContext.Current.Server.MapPath("~/xmlLogin.xml"); //Caminho e Nome do arquivo
XmlDocument xmlDoc = new XmlDocument(); //Criando um obejto XML
xmlDoc.Load(sCaminhoDoArquivo); //Carrego o arquivo para o objeto XML
XmlNodeList xnList = xmlDoc.GetElementsByTagName("acesso");//Pegando elemento pelo nome da TAG
foreach (XmlNode xn in xnList) //Fazer um ForEach lendo os elementos do XML
{
if (_login == xn["usuario"].InnerText && _password == xn["senha"].InnerText) //Verifica se o Login e Senha passados conferem com os dados do XML
{
acessoLiberado = true; //A variavel acessoLiberado só receberá TRUE se forem encontrados usuario e senha passados, senão valor continuará FALSE
}
}
if (acessoLiberado == false)
{
sMensagemRetorno = "Usuário ou Senha inválido!"; //Seta a variavel com a mensagem de Usuário ou Senha inválidos.
}
}
catch (Exception ex)
{
sMensagemRetorno = "Erro: " + ex.Message.ToString(); //Seta a variavel com a mensagem de exceção gerada pelo sistema.
acessoLiberado = false;
}
return acessoLiberado;
}
Com a classe e objetos criados, falta apenas programar o evento do LinkButton com o código abaixo:
protected void btnAcesso_Click(object sender, EventArgs e)
{
if (ValidarAcesso(txtLogin.Text, txtPassword.Text)) // Verifica se o retorno é TRUE ou FALSE
{
Response.Write("Acesso liberado!!!!!!"); //Se o retorno for TRUE informamos que dados fornecidos estão corretos
}
else
{
Response.Write(sMensagemRetorno); //Se for FALSE é porque ocorreu alguma exceção ou os dados fornecidos estão incorretos
}
Pronto, agora é só rodar o projeto e testar.
Abraços e até a próximo!
Comentários
Postar um comentário