Login Asp.Net | Simples
Neste primeiro tópico iremos aprender a criar login em asp.net para sua aplicação de modo simples. Nos outros tópicos você poderá personalizar seu login asp.net.
Com asp.net utilizando o Visual Studio é bem simples criação de login. Pois o próprio asp.net tem componentes que facilitam e nos ajudam nisso.
Vamos criar 2 páginas, “default.aspx” e “login.aspx”. A página “default.aspx” será a página inicial da sua administração e a página “login.aspx” será responsável pelo login.
Para iniciar localize o componente “Login” dentro do ToolBox conforme a imagem abaixo:
E arraste para sua página “login.aspx”, conforme imagem abaixo:
Em seguida clique duas vezes sobre o componente login da imagem acima.
Ao fazer isso a tela de código C# irá abrir com o seguinte código, conforme abaixo:
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) { //Funções para tratar o login. }
Agora iremos configurar o login, para isso digite o seguinte código C# dentro do componente de login:
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) { if ((Login1.UserName == "admin") && (Login1.Password == "123")) { e.Authenticated = true; FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false); } else { e.Authenticated = false; } }
Explicação das linhas: na linha 3 criamos um If que compara o UserName(nome de usuário) digitado no componente chamado Login1 com o texto “admin” e o Password(senha) digitado no componente chamado Login1 com o texto “123”.
Obs. Aqui passamos dois valores fixos, “admin” e “123”, no entanto, podemos fazer uma consulta no banco de dados para buscar essas informações.
Se o nome de usuário for “admin” e a senha “123” então executamos as linhas 5 e 6.
Linha 5: Fala para a aplicação que o usuário está logado no sistema.
Linha 6: Fala para a aplicação que após logar o usuário ele deve ser direcionado para a página que tentou acessar. Vamos entender isso mais a frente.
Senão, ou seja, se o usuário ou senha forem incorretos (linha 8 ) então executo a linha 10. Que diz para a aplicação que o usuário não está logado.
Agora abra a página “default.aspx” nela digite: “Usuário logado com sucesso!”.
O último passo é configurar nosso arquivo “Web.config” da aplicação.
Abra seu arquivo “Web.config”, se não tiver um na sua aplicação crie. E digite dentro da Tag “<system.web>” o seguinte código:
<authentication mode="Forms"> <forms name="MyCookie" loginUrl="login.aspx" timeout="30"/> </authentication> <authorization> <deny users="?"/> </authorization>
Linha 1: Configuro a aplicação para autenticar por Formulário.
Linha 2: Configuro a aplicação para ter como página de login padrão a página “login.aspx”, ou seja, qualquer página que o usuário que não está logado tentar acessar vai ser direcionado para a página “login.aspx”. Quando o usuário entra na página “default.aspx” e não está logado será direcionado para “login.aspx”, quando efetuar o login, será direcionado para a página que tentou acessar, ou seja, “default.aspx”.
Linhas 5, 6 e 7: Diz a aplicação que somente usuários logados tem acesso as páginas.
Testando: Para testar basta abrir a página “default.aspx”, você será direcionado para a página de login(login.aspx), após digitar usuario(admin) e senha(123) você será direcionado novamente para a página “default.aspx”, só que agora com permissão para acessar o conteúdo da mesma.
Login Asp.Net | Personalizando visual e mensagens
O componente de login do asp.net também permite que personalizemos as mensagens de erro e textos bem como aparência.
Para personalizar a aparência da caixa de login, clique sobre a mesma, aparecerá uma seta na parte direita superior.
Clique na seta e escolha a opção “Auto Format …”. Conforme a imagem abaixo:
Abrirá uma caixa com alguns temas padrões, escolha o desejado. Conforme imagem abaixo:
Pronto! Seu componente de login estará com o novo tema escolhido, conforme exemplo:
Agora vamos configurar os textos e mensagens de erro. Clique sobre a caixa de login do seu asp.net e observe a janela “Properties” do Visual Studio, conforme imagem abaixo:
Bem, a “Properties” do componente login tem diversas opções para personalizar. Abaixo segue algumas:
FailureText: Texto que será exibido quando nome de usuário ou senha estiverem incorretos. Ex: Erro! Nome de Usuário ou senha incorretos!
LoginButtonText: Texto do botão de login. Ex: Entrar.
PasswordLabelText: Texto da senha. Ex: Senha.
PasswordRequiredErrorMessage: Erro a ser exibido quando o usuário não digitar senha. Ex: Digite sua senha!
RememberMeText: Texto da opção para salvar o usuário no computador. Ex: Guardar Dados!
TitleText: Título da caixa de login. Ex: Efetue seu login:.
UserNameLabelText: Texto do Usuário. Ex: Usuário.
UserNameRequiredErrorMessage: Erro a ser exibido quando o usuário não digitar nome de usuário. Ex: Digite seu nome de usuário!
Após efetuar as modificações conforme os exemplos, confira o resultado:
Login Asp.Net | Logout
O componente de login do asp.net já possui uma opção de logout. Ou seja, para desconectar o usuário logado da session criada. A opção é o LoginStatus, que se encontra na “Toolbox” junto com os componentes de login, conforme imagem abaixo:
Para utilizar está opção basta arrastar para sua página.
No entanto, há outras opções para se fazer logout. Já que está opção de LoginStatus não pode ser utilizada em todos os lugares, visto ser um componente do asp.net. Por exemplo, se você tem um menu criado através de algum outro componente do asp.net e quer incluir logout não poderá utilizar o LoginStatus.
Por isso, segue uma opção de logout que pode ser utilizada em qualquer situação.
Crie um link para a página “logout.aspx”, conforme código abaixo:
<a href="logout.aspx">Sair</a>
Crie uma página chamada “logout.aspx” e coloque o seguinte código C# no “Page_Load”, conforme exemplo:
protected void Page_Load(object sender, EventArgs e) { FormsAuthentication.SignOut(); //Efetua o logout, desconectando o usuário. Response.Redirect("default.aspx"); //Redireciona o usuário para a página "default.aspx". }
Obs. A página “logout.aspx” não precisa conter nada, apenas o código C# acima.
Pronto! Agora você já tem uma opção de logout na sua administração.
Link permanente
Obrigado pelo artigo! Achei que fosse mais dificil fazer um login com asp.net… valeu!
Link permanente
Tive problemas com FormAutenthication mesmo seguindo passo a passo !
Link permanente
Olá Rod, qual erro é apresentado?
Link permanente
boa solução para logout, bem simples
Link permanente
Ótima dica. Não pensei que fosse tão fácil introduzir um login na aplicação.
Link permanente
Parabéns pelo site. Bem objetivo e de fácil entendimento.
Link permanente
Muito bom! Muito simples realmente e funciona direitinho.
Link permanente
Muito bom cara.
Agora entendi como funciona esta ferramente de login.
Abs
Link permanente
Gostei muito de ver essa forma mas eu saber de pois ou quando eu entroduzir a minha senha como eu vo entrar na pagina inicial porque existem varias paginas
Link permanente
oi eu não consigo colocar a parte do
no asp , onde crio isso ? eu tentei por dentro do script e fora mas não deu certo, mas ele ja esta dando o login, mas quando ele dá o login, eu queria que ele fosse pra outra pagina e ele não esta indo,,,, pode me ajudar?
obrigado Isabel
Link permanente
Essa parte Authenticated mode=”Forms”>
‘
‘
‘
‘<deny users="?"/
'
Link permanente
Olá Isabel.
Essa parte do código deve ser inserida no seu arquivo web.config. Se não tiver um, você deve criá-lo.
Abraço.
César
Link permanente
Mas exite um porem… negando todos os usarios anonimos…
No codigo da pagina logout.aspx ki redireciona para pagina: “default.aspx”.
Acontecerá que será solicitado autenticação novamente, visto ki esta configurado para todos os usuarios se atenticarem. Entao qndo a pagina tentar redirecionar para “default.aspx” nao sera permitido
protected void Page_Load(object sender, EventArgs e) {
FormsAuthentication.SignOut();
//Efetua o logout, desconectando o usuário.
Response.Redirect(“default.aspx”);
//Redireciona o usuário para a página “default.aspx”.
}
Link permanente
Olá Jefferson.
Essa é a intenção! Afinal, quando clicar em logout, não deve permanecer logado, deve jogar pro login novamente, ou para uma página a sua escolha.
Abraço.
Link permanente
É no arquivo webconfig
Link permanente
Existe alguma forma de em vez de o usuario e senha serem dados como padrão, ou digitados nessa página. eu recebê-los de uma página de um projeto externo o qual eu teria o nome das variáveis utilizadas? e depois na página que seria a default escrever o nome da pessoa? tipo Bem Vindo, [label]??
Link permanente
Olá Mayã. Você que determina de onde vem o login e senha, pode ser uma variável no seu web.config, banco de dados, arquivo XML, etc.
Sobre o nome do usuário, ao fazer o login, é possível restaurar sim, para isso, você pode utilizar o seguinte código: Login1.UserName.
Ou seja Login1 é o elemento de login e usarname o nome de usuário que você vai resgatar, pode salvar isso numa sessão ou cookie e restaurar mais tarde para uma mensagem de boas-vindas.
Abraço.
César
Link permanente
Otima iniciativa (y)
Link permanente
Tive problemas com FormAutenthication mesmo seguindo passo a passo ! ele não reconhece o FormAutenthication
Link permanente
Eu tive o mesmo problema, experimente adicionar a using System.Web.Security
Link permanente
obrigado me ajudou bastante,
queria saber como fazia uma pagina a parte de logout para efetuar outros comandos manualmente e agora consegui!!
Link permanente
gostei sim, porem poderia fazer o exemplo, em vez de um if == “123”, um exemplo com banco, um where e eu nao sei o que acontece na minha aplicaçao que as configuraçoes, e css`s se perdem sobrando apenas o objeto login
Link permanente
Valew a dica,estava com dificuldade há um certo tempo!!
parabens
Abraços….
Link permanente
Olá perimeiro parabéns pelo post,
Gostaria de saber se vc saberia me informar como faço para , ex:
Tenho uma pagina de login e ao invés do usuario cadastrar uma senha e login ela usar
a do seu proprio pc, vamos supor eu tenho um pc com login e senha e eu entro com esse mesmo login e senha entende , preciso fazer essa pagina de login pra usar aki na empresa onde trabalho será que vc pode me ajudar pq não tenho idéia de como fazer isso , desde já agradeço valew..
Link permanente
Olá Patricia, a maneira mais fácil de você fazer isso seria cadastrando o mesmo login e senha da máquina no banco de dados que armazena o login e senha.
Existe maneira de comparar o usuário do windows com o que está cadastrado no banco de dados, porém, de qualquer maneira você teria que cadastrar algo no banco de dados.
Sendo assim, para ajudar melhor, preciso saber o seu propósito em fazer isso, se o caso for apenas para o usuário não precisar logar, apenas entrar da máquina em questão e já logar automaticamente você também pode utilizar outros recursos como comparação de IP ou de MAC da máquina.
Link permanente
Olá cesarch2, agradeço sua atenção mais meu chefe pediu que eu fosse assim mesmo entrar
com o mesmo login e senha e não quer que seja cadastrado já pegar o que existe no caso,
mais agradeço sua atenção.
Obrigada .
Link permanente
Muito fácil… ficamos todos gratos!
tenho um dúvida, quando agnt cria um projeto Web o visual cria um monte de coisas pre programadas pra agente, uma delas é a pasta Account que tem Login.aspx, Register.aspx, etc…
qual a diferença da sua para essa que o visual cria?
Link permanente
Olá Tony. A partir do Framework 4, quando você cria um novo projeto aparece essa pasta que você mencionou.
Particularmente eu prefiro criar um empty website, que vem sem esses arquivos e fazer manualmente, pois assim da pra você personalizar do seu jeito.
Mas, independente da opção que você escolher, vai dar pra fazer o login.
Abraço.
Link permanente
Olá,
Seria possível retirar uma das páginas do login? No meu caso, tenho um formulário de inscrição que não será necessário login para acessa-lo.
Obrigado
Link permanente
Bom dia,
pessoal tenho um sistema web, ai um usuario esta logado, se outra pessoa entrar com o mesmo login e senha , como faço pra derrubar as duas sessões ??????
Link permanente
Ola, quando eu faço o logout e tento entrar de novo com o mesmo login e senha ou outro login e senha diferente cai na tela de erro dizendo:
Server Error in ‘/’ Application.
——————————————————————————–
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /default.aspx
——————————————————————————–
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272
Poderia me ajudar? Obrigado.
Link permanente
Olá amigo, muito obrigado pelo post. Me abriu a mente e agora estou cheio de ideias para desenvolver. Obrigado!!
Link permanente
Caracas! Consegui!!!!! Sabe criança quando ganha um brinquedo…. Sou eu agora… Po gente, sou iniciante… Isso para mim foi tudo de bom!
Link permanente
Ótimo, a explicação ficou muito simples e ótima para tirar as dúvidas mais ínfames.. me ajudou!
Link permanente
Cara, eu estava tentando fazer de uma forma manual, mas eh besteira, alem do que, posso validar o usuario e senha do banco sem problema nenhum usando esse form.
Obrigado, me ajudou muito!
Link permanente
Adorei esse post, muitíssimo útil e eficaz. Gostaria que continuassem as postagens a respeito das ferramentas do toolbox do visual studio, elas são muito importantes.
Link permanente
TOP demais o tutorial, simples e eficaz.
Mas, onde está a continuação?
Link permanente
Olá Luiz Fernando, obrigado pelo elogio! O tutorial abrange todo o procedimento de Login, portanto, não tem continuação. Abraço!
Link permanente
Olá belo artigo.. Tenho uma dúvida, usando o authentication mode = Windows, como faço para fazer logout quando o usuário tentar autenticar novamente(tipo de outro máquina)?
Grato
Link permanente
Muita boa a explicação! Melhor ainda se fosse utilizando o banco de dados.
Vlw
Link permanente
Preciso de uma ajuda, estou a fazer uma aplicação de factura, depois do login, quero que quando for o administrador a usar, dentro da opção registo (tem acesso de modificar ou adicionar um usuário ou produto), e quando for o usuário a usar, seja inacessivel o uso dos itens citado, por favor preciso do código.
Link permanente
Boa tarde.
Estou desenvolvendo um site e meu cliente quer um gerenciador de conteúdo, estou começando agora na área e tenho muitas dificuldades pois sou a única programadora na empresa, eu trabalho com MySQL aqui e gostaria de saber como eu faço pra comparar o login e senha digitados nesse componente com os que estão salvos no banco.
Link permanente
Mesmo seguindo o passo a passo, não reconhece o FormsAuthentication
Link permanente
Boa Tarde Caros amigos, estou começando a engatinha agora nesse mundo de programação bem no método onde é feita a validação do usuário e senha no código demostrado já é passado os valores apenas para verificação. A validação com um usuário cadastrado no banco como ficaria? estou cheio de grilos aqui e tenho lido muita coisa nada haver aqui na net e o mais claro e entendível esta nesse site desde já agradeço abraços a todos!.
Um amigo do trabalho me ajudou a fazer esse código ele serve pra fazer essa validação
stringConexao = System.Configuration.ConfigurationManager.ConnectionStrings[“ControleSalaConexao”].ConnectionString;
using (SqlConnection conexao = new SqlConnection(stringConexao))
{
conexao.Open();
string sqlLogin = “SELECT id, nome, login FROM Usuario WHERE login = @login and @senha = senha”;
using (SqlCommand comando = new SqlCommand(sqlLogin, conexao))
{
comando.Parameters.AddWithValue(“@login”, this.UserName.Text);
comando.Parameters.AddWithValue(“@senha”, this.Password.Text);
using (SqlDataReader drUsuarios = comando.ExecuteReader())
{
if (drUsuarios.HasRows)
{
drUsuarios.Read();
Usuario usuario = new Usuario();
usuario.id = int.Parse(drUsuarios[“id”].ToString());
usuario.nome = drUsuarios[“nome”].ToString();
usuario.login = drUsuarios[“login”].ToString();
this.Session[“UsuarioLogado”] = usuario;
Response.Redirect(“Default.aspx”);
}
else
{
Response.Write(“Usuário ou/e senha inválido!”);
Outra duvida como ficaria isso em um projeto MVC pois preciso fazer um trabalho de faculdade onde é a exigencia que seja aspnet mvc.
Link permanente
O meu dá erro na seguinte linha: Usuario usuario = new Usuario();
Link permanente
goste muito bom continue a sim
Link permanente
Olá, está dando erro nessa linha FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false)
Gostaria de saber por que? Obrigada.
Link permanente
Meu FormsAuthentication fica com uma linha vermelha dando erro.
Link permanente
Boa tarde! Fiz tudo como manda o figurino, esta autenticando com senha criptografada gravada no banco porem, na maquina de desenvolvimento ao executar o projeto funciona normal mas ao publicar no servidor e abrir a pagina de login tenho que informar o usuário e senha duas vezes para entrar no sistema, onde é que esta o erro?
Link permanente
tenho o mesmo problema, Meu FormsAuthentication fica com uma linha vermelha dando erro.