Menu com View _Layout

.NET

Engenharia de Software

Front-end

27/07/2015

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

Curtidas 0

Respostas

Randrade

Randrade

27/07/2015

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"
GOSTEI 0
Yuri Moraes

Yuri Moraes

27/07/2015

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?
GOSTEI 0
Randrade

Randrade

27/07/2015

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.
GOSTEI 0
Yuri Moraes

Yuri Moraes

27/07/2015

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

Randrade

27/07/2015

É 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.
GOSTEI 0
Yuri Moraes

Yuri Moraes

27/07/2015

Ok, vou verificar.
GOSTEI 0
POSTAR