Login Asp.Net | Mundo Asp.Net | Dicas e Tutoriais de C# e Asp.Net
set
11
2011

Login Asp.Net

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:

Login Asp.Net - Toolbox

E arraste para sua página “login.aspx”, conforme imagem abaixo:

Login Asp.Net - Componente Login

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:

Código C#

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:

Código C#

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:

Código Web.config

<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:

Login Asp.Net - Componente Login - Auto Format

Abrirá uma caixa com alguns temas padrões, escolha o desejado. Conforme imagem abaixo:

Login Asp.Net - Componente Login - Temas

Pronto! Seu componente de login estará com o novo tema escolhido, conforme exemplo:

Login Asp.Net - Componente Login - Novo Visual

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:

Login Asp.Net - Componente Login - Properties

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 - Componente Login - 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:

Login Asp.Net - Componente Login - LoginStatus

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:

Código Aspx

<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:

Código C#

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.

Comente usando o Facebook:





45 Comentários + Add Comment

  • Obrigado pelo artigo! Achei que fosse mais dificil fazer um login com asp.net… valeu!

  • Tive problemas com FormAutenthication mesmo seguindo passo a passo !

  • Olá Rod, qual erro é apresentado?

  • boa solução para logout, bem simples

  • Ótima dica. Não pensei que fosse tão fácil introduzir um login na aplicação.

  • Parabéns pelo site. Bem objetivo e de fácil entendimento.

  • Muito bom! Muito simples realmente e funciona direitinho.

  • Muito bom cara.

    Agora entendi como funciona esta ferramente de login.

    Abs

  • 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

  • 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

  • Essa parte Authenticated mode=”Forms”>



    ‘<deny users="?"/
    '

    • 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

    • 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”.
      }

      • 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.

    • É no arquivo webconfig

  • 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]??

    • 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

  • Otima iniciativa (y)

  • Tive problemas com FormAutenthication mesmo seguindo passo a passo ! ele não reconhece o FormAutenthication

    • Eu tive o mesmo problema, experimente adicionar a using System.Web.Security

  • obrigado me ajudou bastante,
    queria saber como fazia uma pagina a parte de logout para efetuar outros comandos manualmente e agora consegui!!

  • 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

  • Valew a dica,estava com dificuldade há um certo tempo!!
    parabens
    Abraços….

  • 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..

    • 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.

      • 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 .

  • 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?

    • 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.

  • 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

  • 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 ??????

  • 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.

  • Olá amigo, muito obrigado pelo post. Me abriu a mente e agora estou cheio de ideias para desenvolver. Obrigado!!

  • Caracas! Consegui!!!!! Sabe criança quando ganha um brinquedo…. Sou eu agora… Po gente, sou iniciante… Isso para mim foi tudo de bom!

  • Ótimo, a explicação ficou muito simples e ótima para tirar as dúvidas mais ínfames.. me ajudou!

  • 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!

  • 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.

  • TOP demais o tutorial, simples e eficaz.
    Mas, onde está a continuação?

    • Olá Luiz Fernando, obrigado pelo elogio! O tutorial abrange todo o procedimento de Login, portanto, não tem continuação. Abraço!

  • 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

  • Muita boa a explicação! Melhor ainda se fosse utilizando o banco de dados.

    Vlw

  • 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.

  • 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.

  • Mesmo seguindo o passo a passo, não reconhece o FormsAuthentication

  • 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.

  • goste muito bom continue a sim

ou Comente pelo formulário:

Cadastre seu e-mail para receber alerta de novos artigos: