Menu com View _Layout
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
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
Curtidas 0
Respostas
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;
E em sua View, você verifica se ele é um administrador ou não, dessa forma:
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"
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
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
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.
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
27/07/2015
Estou tirando base nesse curso da DevMedia onde fiz a Autenticação da mesma forma.
GOSTEI 0
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.
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
27/07/2015
Ok, vou verificar.
GOSTEI 0