asp.net 2.0
使用SiteMap ,web.config,roleMange,treeview(等能使用sitemap文件的一些导航控件)
控制页面访问总结
1,自然需要提供驱动Site Map Providers,在web.config文件中设置Site Map Providers
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider"
description="SiteMap provider which reads in .sitemap XML files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="Web.sitemap"
securityTrimmingEnabled="true"/>
</providers>
</siteMap>
2,在Web.sitemap文件中相应的siteMapNode节点上加上roles属性即可。但只可以加在一级节点上,二级节点上无效,例子如下。设置过后,用户就看不到不能看的导航按钮
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns=" http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="系统管理" description="" roles="系统管理帐户,用户管理员">
<siteMapNode url="~/System/UserManage.aspx" title="用户管理" description=""/>
<siteMapNode url="~/System/CreateUser.aspx" title="创建用户" description=""/>
<siteMapNode url="~/System/CityManage.aspx" title="地市维护" description=""/>
</siteMapNode>
</siteMap>
3,在每个文件目录下另加web.config,什么逗号隔开就不说了。这样用户不能夸权限访问页面
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="管理员" />
<deny users="*"/>
</authorization>
</system.web>
</configuration>
4,2008-11-25,后面实际用到的时候,发生了很怪异的问题。在<allow roles="管理员" /> 中,verbs,msdn默认是*,即是默认启用GET,HEAD,POST.实际碰到的问题是从动态生成的超链接过去的话,老是通不过角色认证,试了多次,以显示指定verbs="GET,HEAD,POST".角色验证通过。然后,引发出另一个问题。在我的电脑上可以后。其他电脑有的行,有点不行。气恼下,把不行的电脑的ie都关了,居然可以了。
添加这两个怪异问题,希望对也遇见这种问题的兄弟有帮助
使用SiteMap ,web.config,roleMange,treeview(等能使用sitemap文件的一些导航控件)
控制页面访问总结
1,自然需要提供驱动Site Map Providers,在web.config文件中设置Site Map Providers
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider"
description="SiteMap provider which reads in .sitemap XML files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="Web.sitemap"
securityTrimmingEnabled="true"/>
</providers>
</siteMap>
2,在Web.sitemap文件中相应的siteMapNode节点上加上roles属性即可。但只可以加在一级节点上,二级节点上无效,例子如下。设置过后,用户就看不到不能看的导航按钮
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns=" http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="系统管理" description="" roles="系统管理帐户,用户管理员">
<siteMapNode url="~/System/UserManage.aspx" title="用户管理" description=""/>
<siteMapNode url="~/System/CreateUser.aspx" title="创建用户" description=""/>
<siteMapNode url="~/System/CityManage.aspx" title="地市维护" description=""/>
</siteMapNode>
</siteMap>
3,在每个文件目录下另加web.config,什么逗号隔开就不说了。这样用户不能夸权限访问页面
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="管理员" />
<deny users="*"/>
</authorization>
</system.web>
</configuration>
4,2008-11-25,后面实际用到的时候,发生了很怪异的问题。在<allow roles="管理员" /> 中,verbs,msdn默认是*,即是默认启用GET,HEAD,POST.实际碰到的问题是从动态生成的超链接过去的话,老是通不过角色认证,试了多次,以显示指定verbs="GET,HEAD,POST".角色验证通过。然后,引发出另一个问题。在我的电脑上可以后。其他电脑有的行,有点不行。气恼下,把不行的电脑的ie都关了,居然可以了。
添加这两个怪异问题,希望对也遇见这种问题的兄弟有帮助