Autenticação

<< Click to Display Table of Contents >>

Navigation:  ASP.NET > MVC >

Autenticação

Previous pageReturn to chapter overviewNext page

Autenticação é muito simples! Vamos passo-a-passo!

 

Primeiro: crie um projeto MVC normalmente. Vai aparecer aquelas 2 abas "Home" e "About".

 

Agora crie uma nova aba através do arquivo /Views/Shared/Site.Master

 

<ul id="menu">              

    <li><%: Html.ActionLink("Início", "Index", "Home")%></li>

    <li><%: Html.ActionLink("Área restrita", "Tarefa", "Cadastro")%></li>   <---- esse aqui é novo!

    <li><%: Html.ActionLink("Sobre", "About", "Home")%></li>

</ul>

 

 

Controller

 

Agora vamos criar um Controller para ele: Controllers/CadastroController.cs

 

using System.Web.Mvc;

 

namespace Tarefas.Controllers

{

    public class CadastroController : Controller

    {

        //

        // GET: /Cadastro/

        [Authorize]

        public ActionResult Tarefa()

        {

            ViewData["Message"] = "Parabéns você entrou na área restrita!";

            return View();

        }

    }

}

 

View

 

Agora uma view: /Views/Cadsatro/Tarefa.aspx

 

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">

   Cadastro

</asp:Content>

 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

 

    <h2>Cadastro</h2>

    <p><%= Html.Encode(ViewData["Message"]) %></p> 

 

</asp:Content>

 

CustomProvider

 

Falta pouco agora, vamos criar um Provider para cuidade do login, no meu teste criei uma nova pasta no raiz: /Outras/UsuarioProvider.cs

 

using System;

using System.Web.Security;

 

namespace Tarefas.Outras{

 

    // apenas coloque o nome da classe e o MembershipProvider, clique com botão direito e escolha "Implement Abstract Class"

    public class UsuarioProvider : MembershipProvider

    {

       // a princípio a única função que interessa é a ValidateUser

       public override bool ValidateUser(string username, string password)

        {

            return password.Equals("123456") && username.ToLower().Equals("eu");

        }

    }

}

 

Web.Config

 

Por último, vamos dizer no Web.config que o provider que vamos usar é o UsuarioProvider que criamos. Troque o providers atual por este:

 

  <system.web>

    ...

    <membership defaultProvider="UsuarioProvider">

      <providers>

        <clear/>

        <add name="UsuarioProvider"

             type="Tarefas.Outras.UsuarioProvider"/>   <--- é o nome do namespace (Tarefas)

      </providers>

    </membership>

   ...

  </system.web>

 

 

Rode e tente acessar a aba "Acesso Restrito". Verá que pede senha. Ao digitar a senha correta (123456) usuário (eu). Vai permitir

ver o conteúdo do "Acesso restrito"

 

Acessando o nome do usuário logado

 

Basta usar User.Identity.Name é uma string que contém null ou nome do usuário