ASP.NET 2.0站点登录、导航与权限管理

2013 年 8 月 17 日4210


3. 数据源SiteMapDataSource控件

   SiteMapDataSource会自动查找项目中名为Web.sitemap的 一个XML文件
(三)权限管理

   网站在安全性方面有一个常见的要求:特定的页面仅允许某些成员或其他经过身份验证的用户浏览。ASP.NET 的角色管理提供了一种方法,可以基于安全角色限制对 Web 文件的访问。站点地图安全性调整提供了一种同样基于安全角色的方法来隐藏站点地图中的导航链接。

   1. ASP.NET 网站配置

   1)提供程序

   可使用 SQL SERVER 2005(默认),2000和Access数据库存储用户信息。

   若要使用 SQL SERVER 2000数据库存储信息:

   a.用SQL Server的企业管理器,创建一个数据库,如为zyh;

   b.用aspnet_regsql(C:\Windows\Microsoft.Net\Framework\v2.0.50215\aspnet_regsql.exe)创建数据库。除在创建向导的第3步数据库下拉框选择“zyh”以外,其余各步骤皆使用默认设置。这样,在Sql Server 2000中会创建一个含有用户表和存贮过程的完整数据库。

   c.在管理工具中打开IIS,找到虚拟目录newtest,用鼠标右键点击,然后左键点菜单项【属性】、【ASP.NET】标签、【编辑配置】按钮,在【常规】标签的【连接字符串管理器】中,点名称【LocalSqlServer】,点【编辑】按钮,把【连接参数】修改为相应能够连接到数据库zyh的数据库连接字符串,如“Data Source=.;Initial Catalog=zyh;Persist Security Info=True;User ID=sa;Password=12345”,此后,一直点【确定】按钮,最后到IIS管理工具界面即可。

   d.最后返回网站管理工具Web页面,点击安全主题,就会出现“使用安全设置向导按部就班地配置安全性。”链接和其它相关链接。

   2)安全设置选项被分为三部分:用户,角色和规则。

   其中规则建立了角色对项目中文件夹的访问权限。

   3)应用程序配置

   可设置SMTP服务器 以供用户通过email找回密码。

   2. 建立登录页面

   3.在Web.config文件中启用角色管理

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

<roleManager enabled="true" />

<authentication mode="Forms">
<forms loginUrl="~/Login/login.aspx"></forms>
</authentication>

<compilation debug="true">
<assemblies>
<add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
</system.web>
<system.net>
<mailSettings>
<smtp from="wangyihust@163.com">
<network host="smtp.163.com" password="passwordModify" userName="wangyihust" />
</smtp>
</mailSettings>
</system.net>

   4.在Web.sitemap 文件中 加入角色权限,以显示或隐藏相关页面

<siteMapNode title="RSS" roles="*">
<siteMapNode title="公司关系" url="SiteMapTest.aspx?id=relations" />
<siteMapNode title="RSSSite" url="~/RSS/RSSSite.aspx" />
<siteMapNode title="Careers" url="SiteMapTest.aspx?id=careers" />
<siteMapNode title="About this Site" url="SiteMapTest.aspx?id=about" />
</siteMapNode>

   其中,roles="*"表示所有人都可以看到下面的页面,但是我们在规则中可以拒绝某些 角色的用户看到下面的相关页面(通过目录权限控制)。

gigi_miao

0 0