请原谅我对我的问题的无知,我18年来一直是CF开发人员,但我现在有一个项目,我第一次在asp.net VB上工作。
我需要在menuitem中做一个条件,以便根据用户角色(管理员,协调员,讲师,学习者)显示菜单链接。
最好的方法是什么?以下是菜单代码。括号中的文字显示条件。
<asp:Menu ID="MyMenu" runat="server" DynamichorizonalOffset="2"
ForeColor="#000E8F" StaticSubMenuIndent="10px" Width="50%" CssClass="verticalmenu"
Font-Size="11pt" OnMenuItemClick="MyMenu_MenuItemClick">
<DynamicMenuStyle CssClass="IE8Fix" verticalPadding="2px" />
<DynamicMenuItemStyle CssClass="horizonalmenu" VerticalPadding="5px" />
<StaticMenuItemStyle verticalPadding="2px" ItemSpacing="2px"
CssClass="horizonalmenu" />
<StaticHoverStyle ForeColor="#7D00B6" />
<Items>
<asp:MenuItem Text="Home" Value="Home" NavigateUrl="~/Accounts/Menu.aspx"></asp:MenuItem>
<asp:MenuItem Text="Search/Register for Classes" Value="Search/Register for Classes" NavigateUrl="~/Registration/SearchCourses.aspx" ></asp:MenuItem>
<asp:MenuItem Text="Transcript [For Learner Only]" Value="Transcript" NavigateUrl="~/InserviceHistory/InserviceTranscript.aspx"></asp:MenuItem>
<asp:MenuItem Text="Request for In-Service Credit [For Learner Only]" Value="My Menu" NavigateUrl="~/InserviceCredit/IndividualRequest/InstructionalIndividualCreditRequest.aspx"></asp:MenuItem>
<asp:MenuItem Text="Users [Admin, Coord, Instr]" Value="My Menu">
<asp:MenuItem Text="Administrator [Admin only]" Value="My Menu">
<asp:MenuItem Text="Add" Value="My Menu"></asp:MenuItem>
<asp:MenuItem Text="Edit" Value="My Menu"></asp:MenuItem>
<asp:MenuItem Text="Delete" Value="My Menu"></asp:MenuItem></asp:MenuItem>
<asp:MenuItem Text="Coordinators [Admin and Coord only]" Value="My Menu">
<asp:MenuItem Text="Add" Value="My Menu"></asp:MenuItem>
<asp:MenuItem Text="Edit" Value="My Menu"></asp:MenuItem>
<asp:MenuItem Text="Delete" Value="My Menu"></asp:MenuItem></asp:MenuItem>
</Items>
</asp:Menu>
我找到了两种做条件的方法但又不知道如何合并它们,这些是我找到的例子(不是我的菜单示例编码):
----Example 1 -----
<% Dim count As Integer = 0
Dim message As String
If count = 0 Then
message = "There are no items."
ElseIf count = 1 Then
message = "There is 1 item."
Else
message = "There are " & count & " items."
End If
%>
----Example 2 ------
<%
if(1==1)
{%>
html code
<% }
else
{
%>
NOt 1
<% } %>
答案 0 :(得分:0)
您无需手动进行有条件处理。如果您想要自动安全修整,则需要使用web.sitemap填充菜单。
请参阅Walkthrough: Filtering Site-Map Nodes Based on Security Roles
角色是一组用户的名称。建立角色后,您可以将单个用户帐户分配给角色。您可以根据角色限制对站点地图中的Web文件和节点的访问。
阅读SiteMapProvider.SecurityTrimmingEnabled财产。
获取一个布尔值,指示站点地图提供程序是否根据用户的角色过滤站点地图节点。
例如,如果您想限制对Admin文件夹的访问,您可以在Admin文件夹Web.Config文件中添加这样的内容,以限制除具有角色管理员的用户以外的所有用户。
<configuration>
<system.web>
<authorization>
<allow roles="Administrator"/>
<deny users="*"/>
</authorization>
</system.web>
</configuration>