如何根据用户权限使用站点地图数据源过滤TreeView和Menu控件的节点?
时间:2020-03-05 18:44:41 来源:igfitidea点击:
我正在使用ASP.NET登录控件和表单身份验证作为ASP.NET Web应用程序的成员身份/凭证。我正在使用站点地图进行站点导航。
我有使用SiteMapDataSource填充的ASP.NET TreeView和Menu导航控件。但是非管理员用户可以看到仅限管理员使用的页面。
Kevin Pang wrote: I'm not sure how this question is any different than your other question…
另一个问题涉及分配和维护权限。
这个问题只涉及导航的表示。特别是带有站点地图数据源的TreeView和Menu控件。
<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" /> <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="False" />
Nicholas wrote: add role="SomeRole" in the sitemap
那只能解决显示问题吗?还是强制执行此类页面权限?
解决方案
回答
我必须在我的web.config文件中将securityTrimmingEnabled设置为" true"。
<?xml version="1.0"?> <configuration> ... <system.web> ... <siteMap defaultProvider="default"> <providers> <clear/> <add name="default" type="System.Web.XmlSiteMapProvider" siteMapFile="web.sitemap" securityTrimmingEnabled="true"/> </providers> </siteMap> ... </system.web> ... </configuration>
回答
我不确定该问题与其他问题有什么不同,但是无论如何我都会尽力回答。
如果我们想获得有关如何实现基于角色的身份验证的教程,请从4GuysFromRolla中检出一个。
回答
securityTrimmingEnabled =" true"适用于具有配置文件限制权限的内部页面,我们还可以在站点地图中添加role =" SomeRole"来避免显示机制,如果我们有指向外部站点的菜单项,则该功能非常有用。