<< Click to Display Table of Contents >> Autenticação |
![]() ![]() ![]() |
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