ASP.NET2.0导航功能之配置会员和角色

原创 2007年09月29日 12:46:00
一、 简介

  在本文中,我们将主要探讨ASP.NET 2.0的会员、角色和配置问题。ASP.NET中的会员系统提供了一个可编程API用于创建和管理用户账户,而其中的角色部分使开发者能够定义一组角色并把用户与角色相关联。典型地,一个提供用户账户的网站都具有只为某些用户、认证用户或属于特定角色的用户所存取的内容部分。

  例如,一个Web站点可能有一组页面-它允许一个信任用户编辑该Web站点的内容或管理已有用户。不是简单地试图隐藏这个页面并且希望没有人偶然在浏览它时遇到麻烦,或硬编码授权而仅允许单个用户;一种更为强壮和安全的方式是定义一个管理员角色-然后赋给他一组选出来的信任用户。然后,这些管理web页面被进一步配置以允许仅对那些具有管理员角色的用户可以存取。同样,该Web站点可能包含一组只有认证用户可以存取的页面。

  既然该站点的某些部分可能只能为某些用户所存取,那么,这就使得我们在站点导航时有点进退两难。我们是否要包括那些只有授权用户才能在Web站点的站点地图中存取的页面?如果我们这样做了,那么所有的用户将会在该站点的菜单或树视图中看到受限制的页面。为什么不能向存取它们的用户显示指向这些页面的链接呢?如果我们从站点地图上删除了这些受限制的页面,那么那些来观看这些页面的授权用户就无法容易地导航到它们,因为它们不是站点地图的一部分,并因此不会出现在该站点的树视图或菜单中!

  值得庆幸的是,ASP.NET 2.0的站点导航提供了一种称为安全性修剪的特性。当用支持安全性修剪的功能获得站点地图信息时,只有那些当前登录的用户具有访问授权的站点地图结点才是可用的。这意味着,站点的TreeView或Menu将仅包含为当前登录用户可存取的那些部分。要想了解怎样配置站点导航以支持安全性修剪,请接着往下读!

  二、 配置ASP.NET 2.0的会员和(可选)角色

  既然站点导航安全性修剪把站点地图数据基于访问页面的用户和为站点地图中的页面定义的授权设置,那么在我们可以分析安全性修剪之前,你必须首先配置你的Web站点以使用ASP.NET 2.0的会员服务功能。(你也可以配置该站点来使用角色,并使用基于角色的授权优点,但是这对于展示安全性修剪概念并不作要求。)至于详细讨论怎样配置一站点以使用会员和角色已经超出了本文的范围。

  在本文最后的下载中包括一个可用实例-它实现为一个Web站点安全地修剪站点地图。该站点实现了会员和角色。如果你不想在一个新的Web站点上花费时间来安装会员和角色特性的话,你可以使用它。具体地说,在本文后面可下载的Web站点中包含两个角色-管理员(Administrator)和测试员(Tester),并有四个用户:

  ·Superman,其角色为管理员和测试者

  ·Admin,其角色为管理员

  ·Mr.Tester,其角色为测试者

  ·Average User,没有任何角色

  而且,我在该工程中有三个文件夹:Admin,Tester和AuthUsersOnly。前两个文件夹已经被配置仅允许具有管理员和测试者角色的用户存取。AuthUsersOnly文件夹被限制仅用于认证的用户。

    三、 配置站点导航以使用安全性修剪

  默认地,站点导航并不使用安全性修剪。不管什么用户正在访问站点,并且不管定义什么样的授权规则,当每个用户通过一TreeView或菜单Web控件来观看站点地图数据时,他都被可以看到站点地图中的所有部分。通过启动安全性修剪,站点导航系统将自动地基于当前登录的用户和为站点地图中的<siteMapNode>元素所参考的页面的授权而限制显示结果。

  可以使用下列模式通过Web.config文件来配置站点导航设置:

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider"
  description="Default SiteMap provider."
  type="System.Web.XmlSiteMapProvider"
  siteMapFile="siteMapFileName"
  securityTrimmingEnabled="true" />
</providers>
</siteMap>


  回想一下在本系列第一部分中的讨论-站点导航系统使用了提供者模型。这个模型提供给开发者一些良好定义的公共API,但是允许(如果需要的话)定制内部实现细节。缺省地,站点导航特点使用XmlSiteMapProvider-它从XML格式化的站点地图文件Web.sitemap中获得站点地图信息。你可以通过Web.config文件来改变所使用的提供者,或修改针对缺省提供者的缺省设置。

  为了定制缺省提供者的设置,只要简单地添加一新的提供者-它使用与缺省提供者(System.Web.XmlSiteMapProvider)相同的类型来定制所需要的设置。上面显示的代码片段展示了定制两个XmlSiteMapProvider的设置:

  ·siteMapFile设置指定由提供者所使用的站点地图文件的文件名;缺省地,这个值是Web.sitemap。你如果喜欢,可以在此定制文件名。但是,我鼓励你确保站点地图文件名以.sitemap扩展名结尾,因为缺省地这个扩展名被ASP.NET引擎保护,从而阻止web访问者观看站点地图文件。

  ·securityTrimmingEnabled设置显示是否使用安全性修剪。为了使用安全性修剪,可以把它设置为true,如上面所示。

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

asp.net2.0之用户成员管理及角色管理

对asp.net2.0关注很久了!!!也使用很久了,但自己在用的时候就是有点懒,不愿意学习其成员管理的机制,用到的时候都是自己写代码控制--就是自己建用户、角色,写代码控制他们之间的关系,以达到在程序...

利用已有数据库配合ASP.NET2.0内置用户 角色 授权系统打造自己的权限分配程序(2)

接上面 当我们按照上面的步骤执行之后,就可以得用"ASP.NET 2.0提供的网站配置工具",在"安全"项目中为各角色建立访问规则了. 但有一点要注意,就是ASP.NET 2.0的访问规则是以"文...

asp.net2.0简单用户权限管理、站点登录、导航与权限管理

由于基础数据维护模块和一些系统性的配置只允许管理员操作,不想动用数据库来做用户和权限管理,想利用asp.net2.0自带的用户角色管理.1.首先在web.config文件的的节点下添加管理员的基本信息

Asp.Net2.0开发功能概览

一、ASP.NET创建网站的两种方式:    文件系统:VS2005新增的模式,不需要安装IIS,使用内置的"ASP.NET程序开发服务器",并且随机给网站分配一个Port。    本地IIS:传统的...

无法识别的配置节“system.webServer” windows 2003 server iis6搭建aspx网站,改ASP.NET2.0

无法识别的配置节“system.webServer” windows 2003 server iis6搭建aspx网站,改ASP.NET2.0,及局域网无法访问问题解决办法 右击默认网站,点击属性,...

64位winserver2003+iis6.0+asp.net2.0服务器配置

网址一http://blog.csdn.net/greatverve/archive/2010/04/02/5444688.aspxWin2003 64位下ASP无法连接Access数据库的解决方法 ...
  • wsimei
  • wsimei
  • 2011-04-22 17:11
  • 3373

会员积分系统 for asp.net2.0

  • 2007-04-25 17:59
  • 654KB
  • 下载

ASP.NET MVC4 中整合 NHibernate3.3、Spring.NET2.0、ExtJS4 笔记三:NHibernate配置

目前NHibernate的最新版是3.3.2,官方下载地址:http://sourceforge.net/projects/nhibernate/files/NHibernate/ 下载后解压N...
  • xz2001
  • xz2001
  • 2012-12-30 15:26
  • 3232
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)