Criando um menu de página principal do ASP.NET MVC dinamicamente, com base na "função" do usuário atual
Eu já vi algumas perguntas semelhantes, mas nenhuma que se parece com o que estou tentando fazer.
Esta é minha implementação atual sem qualquer segurança:
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Main List", "Index", "AController")%></li>
<li><%= Html.ActionLink("Product List", "Index", "BController")%></li>
<li><%= Html.ActionLink("Company List", "Index", "CController")%></li>
<li><%= Html.ActionLink("User List", "Index", "DController")%></li>
</ul>
</div>
Isso é bom, e o acima funciona. Eu tenho a opção [Autorizar] Atributos nas Ações do CController e DController para impedir o acesso não autorizado - mas gostaria de remover esses itens do menu para usuários que não possuem a Função correta, porque quando a veem e clicam nele e diz a eles que eles não têm permissão, eles querem. Se eles não sabem que está lá, é melhor para todos os envolvidos ...
Algo assim é, em última análise, o objetivo que estou tentando atingir, mas estou procurando a abordagem mais MVC Flavored, onde a "visualização" é "burra":
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Main List", "Index", "AController")%></li>
<li><%= Html.ActionLink("Product List", "Index", "BController")%></li>
<% If(Role = Roles.Admin) { %>
<li><%= Html.ActionLink("Company List", "Index", "CController")%></li>
<li><%= Html.ActionLink("User List", "Index", "DController")%></li>
<% } %>
</ul>
</div>