Menu com View _Layout

27/07/2015

0

Bom dia Galera,

estou precisando de uma ajuda para criar um Menu de acordo com o Perfil do Usuário. Estou usando MVC e no _Layout depois da autenticação(está criada), preciso que o Menu se ajuste de acordo com os Perfis(Administrador, Gerente e Usuário). Alguém pode me ajudar ou dar os caminhos das pedras? kkkkkkk
Yuri Moraes

Yuri Moraes

Responder

Posts

27/07/2015

Randrade

Não sei como você está utilizando a autenticação. Mas você pode trabalhar com ViewBags e realizar tal feito.

No seu controller, você atribui um valor à uma ViewBag;

public ActionResult Index(){
       if(usuarioAutenticado == "Administrador"){
        ViewBag.Administrador = true;
      }
    //resto do método.
}



E em sua View, você verifica se ele é um administrador ou não, dessa forma:



    @if(ViewBag.Administrador == true){
    Html.Partial("_MenuAdministrador")
     }else{
    Html.Partial("_MenuUsuarioComun")
    }


Você pode fazer essa comparação com o que você estiver trabalhando. Se for com session (não é recomendado) utilize ela. Se for o Identity, ele oferece outros recursos.

No exemplo, eu coloquei o "if()" na partial, mas você pode colocar no menu, em um link, em uma imagem, em que você quiser. Só tome cuidado para seu código não virar um "ninho de gato"
Responder

27/07/2015

Yuri Moraes

Beleza, vou te explicar... Tenho uma controller chamada Autenticação e após logar tenho outra controller chamada Home, a autenticação é feita através do FormsAuthentication.SetAuthCookie(); .... posso utilizar ViewBag neste caso? E teria que ter três Menus ou seja poderia fazer 3 ViewBag?
Responder

27/07/2015

Randrade

Se você estivesse usando o Identity, uma simples verificação de "role" resolveria seu problema.
Mas como, pelo jeito, você criou seu método de autenticação, você cria as ViewBag's ou cria um menu dinâmico, onde você grava em um banco de dados as actions, controllers e permissões, retornando apenas os menus que os usuários possuem acesso.

Esse curso da DevMedia possui um exemplo do que você precisa, e nele é utilizado ViewBags para essa finalidade.
Responder

27/07/2015

Yuri Moraes

Estou tirando base nesse curso da DevMedia onde fiz a Autenticação da mesma forma.
Responder

27/07/2015

Randrade

É parecido. Porém neste curso ele utiliza o conceito de Areas junto.
Ambos os cursos utilizam FormsAuthentication, então não modifica muito a forma.
Se você olhar mais para o final do curso, verá que ele explicará melhor os conceitos.
Responder

27/07/2015

Yuri Moraes

Ok, vou verificar.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar