母版页:
<ul>
<li class="first"><asp:HyperLink runat="server" ID="lnkHome"
NavigateUrl="~/Forms/Default.aspx">Home</asp:HyperLink></li>
<asp:Repeater runat="server" ID="Repeater1" DataSourceID="SiteMapDataSource1"
EnableViewState="False">
<ItemTemplate>
<li>
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# Eval("Url") %>'><%# Eval("Title") %>
</asp:HyperLink>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
的web.sitemap
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode id="SiteHome" url="~/Forms/Default.aspx" title="Home"
description="Default">
<siteMapNode id="SiteAbout" url="~/Forms/Aboutus.aspx" title="About us"
description="About Us"/>
<siteMapNode id="SiteNew" url="~/Forms/New.aspx" title="New"
description="My Sample Page"/>
</siteMapNode>
设计
首页|关于我们|我的样本页面
我是ASP.Net Webforms的新手,我正在创建我的第一个项目。 我正在使用Repeater来浏览页面网址。 在我的Master / Page.cs背后的代码我需要隐藏 [我的样本页面]基于我的登录帐户。
类似的东西:
if(UserGroup="Admin")
{
//Show My Sample Page
HOME | About us | My Sample Page
}
else if(UserGroup="User1")
{ //隐藏关于我们 HOME |关于我们 } 其他 { //仅显示主页 家 }
如何在表单中执行加载? 谢谢你们..
答案 0 :(得分:1)
执行此操作的正确方法是在Web.Config
中定义网站地图提供程序,并确保设置属性securityTrimmingEnabled="true"
。
<siteMap defaultProvider="MySiteMap">
<providers>
<clear/>
<add
name="MySiteMap"
type="System.Web.XmlSiteMapProvider"
securityTrimmingEnabled="true"
siteMapFile="~/Web.SiteMap" />
</providers>
</siteMap>
在Forms
文件夹中创建一个Web.Config文件并包含以下内容
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
<location path="New.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
</configuration>
现在ASP.Net将负责显示您网站的哪些部分映射到哪些用户。
例如:在这种情况下,它会隐藏未经身份验证的用户的My Sample Page
页面。
答案 1 :(得分:0)
尝试类似:
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Url") %>'
Visible='Eval("Title") = "My Sample Page" ? this.IsAdmin.ToString() : "True"' >
<%# Eval("Title") %>
</asp:HyperLink>