Tôi đã nhìn thấy một số câu hỏi tương tự, nhưng không có gì giống như những gì tôi đang cố gắng làm.Xây dựng Menu trang ASP.NET MVC chính Động, Dựa trên "Vai trò" của người dùng hiện tại
Đây là thực hiện của tôi hiện tại w/ra bất kỳ bảo mật:
<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>
này là tốt, và các công trình trên. Tôi có [Authorize] Attributes setup trên Actions for CController và DController để ngăn chặn truy cập trái phép - nhưng tôi muốn xóa các mục đó khỏi menu cho người dùng không có Role đúng, bởi vì khi họ nhìn thấy nó và click trên đó và nó nói với họ rằng họ không được phép, họ sẽ muốn nó. Nếu họ không biết nó ở đó, điều đó tốt hơn cho tất cả mọi người tham gia ...
Điều gì đó cuối cùng là mục tiêu mà tôi đang cố gắng đạt được, nhưng tôi đang tìm kiếm thêm một MVC Flavored aproach, "chế độ xem" là "câm":
<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>
Tôi ... tôi nghĩ vậy. Có hai cấp độ người dùng, Bình thường và Quản trị viên. Chỉ quản trị viên mới có thể xem danh sách Công ty và Người dùng, thuộc tính [Ủy quyền] trên bộ điều khiển ngăn truy cập trái phép, nhưng tôi muốn ẩn chế độ xem khỏi không phải của Quản trị viên để họ thậm chí không có ý tưởng rằng nó có trong đầu của họ. – Nate