`
ruilinruirui
  • 浏览: 1048970 次
文章分类
社区版块
存档分类
最新评论

asp.net2.0 站点登录,导航与权限管理

 
阅读更多

asp.net2.0 站点登录,导航与权限管理

(一)登录

asp.net 2.0中,新增了许多新的功能和控件。其中,新增的登陆控件可谓使得WEB应用的设计更加得心应手。什么是登陆控件呢?就是我们平常在WEB应用中经常要用到的用户注册,登陆,忘记密码,登陆后根据权限的不同而显示不同的页面等功能,现在在asp.net 2.0中都已经可以由提供的控件来实现了。

asp.net 2.0中,为了更方便创建和管理用户,以及对 Web 应用程序中的页进行密码保护,引进了新的框架membership。新的框架包含用于处理身份验证和授权的新增功能,能够同时满足 Web 站点管理员和开发人员的需要。Web 站点管理员可以利用新的 Web 站点管理工具来创建新的用户和角色,以及控制对 Web 应用程序中页面的访问。Web 站点管理工具是一组预先编写的 ASP.NET页,不具备编程技巧的用户可以使用它们来配置 Web 应用程序。利用membership API,编程人员可以很方便地使用拖拉控件的方法,再加以少量的代码,就可以完全实现对用户,角色权限等的管理,还可以自定义做扩充。

1.建立网站项目

2.ASP.NET配置

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

登录的身份验证可以配置为基于Forms和Windows的。

3.使用登录控件

说明:用户登录后,显示“退出”的提示,通过LoginStatus控件来实现。在控件的属性中,有LogoutActionLogoutPageUrl两个属性,可以来设定注销时是仅仅刷新当前页面、转向到某个页面或者转向到登录页面。

如何设定LoginPageUrl(登录的页面),运行程序时,当按这个控件的显示的Login链接时,总是转到根文件夹下的Login.aspx,而实际的登录文件在/Login/Login.aspx 。如何解决?

查了下资料,原来登录的Url是在web.config中设置的。如果是用Form验证登录,缺省的web.config是这样写的:
<system.web>
<authentication mode="Forms" />
</system.web>
需要修改成如下的样子:
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/member/login.aspx"></forms>
</authentication>
</system.web>

(二)站点导航

1.三种导航控件

Menu:使用一菜单显示站点的结构。

TreeView:用一个可展开的树显示站点的结构

SiteMapPath:用于显示终端用户处于相对于站点结构的具体位置

2.Web.sitemap 导航XML文件

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode title="首页" url="SiteMapTest.aspx" >
<siteMapNode title="产品" roles="*">
<siteMapNode title="Windows" url="SiteMapTest.aspx?id=windows" />
<siteMapNode title="Office" url="SiteMapTest.aspx?id=office" />
<siteMapNode title="Mobile Devices" url="SiteMapTest.aspx?id=mobile" />
<siteMapNode title="Business Solutions" url="SiteMapTest.aspx?id=business" />
<siteMapNode title="Servers" url="SiteMapTest.aspx?id=servers" />
<siteMapNode title="Developer Tools" url="SiteMapTest.aspx?id=tools" />
<siteMapNode title="Games and XBox" url="SiteMapTest.aspx?id=games" />
<siteMapNode title="All Products" url="SiteMapTest.aspx?id=all" />
</siteMapNode>
<siteMapNode title="资源" roles="*">
<siteMapNode title="支持" roles="*">
<siteMapNode title="修改密码" url="~/Login/ChangePassword.aspx" />
<siteMapNode title="Knowledge Base" url="SiteMapTest.aspx?id=knowledge" />
</siteMapNode>
<siteMapNode title="Downloads" url="SiteMapTest.aspx?id=downloads" />
<siteMapNode title="Windows Update" url="SiteMapTest.aspx?id=windowsupdate" />
<siteMapNode title="Office Update" url="SiteMapTest.aspx?id=officeupdate" />
<siteMapNode title="Learning Tools">
<siteMapNode title="Training &amp; Certification" url="SiteMapTest.aspx?id=training" />
<siteMapNode title="Books" url="SiteMapTest.aspx?id=books" />
<siteMapNode title="Events &amp; Webcasts" url="SiteMapTest.aspx?id=events" />
<siteMapNode title="Patterns &amp; Practices" url="SiteMapTest.aspx?id=patterns" />
</siteMapNode>
<siteMapNode title="Community" url="SiteMapTest.aspx?id=community" />
<siteMapNode title="Security" url="SiteMapTest.aspx?id=security" />
</siteMapNode>
<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>
</siteMapNode>
</siteMap>

Web.sitemap文件必须包含根结点sitemap。一张站点地图由一系列相联系的SiteMapNode对象组成。这些SiteMapNode以一种层次方式联系在一起。该层次包含单个根结点-它是该层中唯一的一个没有父结点的结点,代表首页。在该父sitemapnode结点下,可以有若干个子sitemapnode结点,分别按层次结构代表了网站的各子栏目(留意一下上例中,各个子结点之间的包含关系)

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_regsqlC:/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 name="XmlSiteMapProvider"
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="*"表示所有人都可以看到下面的页面,但是我们在规则中可以拒绝某些 角色的用户看到下面的相关页面(通过目录权限控制)

分享到:
评论

相关推荐

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    该书与《ASP.NET 2.0入门经典(第4版)》及其早期版本,曾影响到无数中国Web程序员。. ASP.NET允许Web站点为每个访问者显示独一无二的页面,而不是显示相同的静态HTML页面。ASP.NET 2.0的发布,使Web应用程序的...

    ASP.NET2.0高级编程(第4版)1/6

    该书与《ASP.NET 2.0入门经典(第4版)》及其早期版本,曾影响到无数中国Web程序员。 目录 第1章 ASP.NET 2.0概述1 1.1 简史1 1.2 ASP.NET 2.0的目标2 1.2.1 开发人员的效率3 1.2.2 管理5 1.2.3 性能和可伸缩性8...

    WebType中文在线打字asp.net2.0+access测试版

    1、搭建asp.net2.0环境 (不会去百度搜索) MDAC数据访问组件下载 MDAC2.8 中文版下载地址: http://download.microsoft.com/download/8/b/6/8b6198c0-fe96-4811-9d81-d5c76dd5fea8/MDAC_TYP.EXE Microsoft ...

    asp.net知识库

    asp.net2.0:扩展ImageButton控件定制自己需要的功能 ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充) ASP.NET2.0中themes、Skins轻松实现网站换肤! ASP.NET 2.0 中的代码隐藏和编译 ASP.NET 2.0 Language ...

    红水晶开源企业网站源码asp.net2.0

    本系统采用.net2.0技术,必须用.net2.0环境运行本系统,用.net1.1环境运行时会出错 最好在网站根目录下运行本系统 如果运行时提示以下错误: &lt;authenticationmode&gt;&lt;/authentication&gt; 解决方法如下: 打开管理工具--...

    远想WEB版进销存2.0

    4、给所建站的站点添加asp.net和Authenticated Users读取和写入的权限 5、附加数据库,在SQL企业管理器中的安全性-登录中添加administrators组中的Authenticated Users用户给你所附加的数据库所有权限, 6、打开你...

    远想WEB版进销存 v2.0

    2、建站独站的站点并选择ASP.net 2.0支持, 3、给系统用户administrators组添加Authenticated Users为超管 4、给所建站的站点添加asp.net和Authenticated Users读取和写入的权限 5、附加数据库,在SQL企业管理器...

    淘宝客网站

    请先保证网站asp.net2.0运行环境,asp.net的url伪静态支持,根目录有写入和修改权限 1、ftp上传你网站目录(不支持二级目录) 2、http://你的域名 3、后台登录http://你的域名/admin/ 你可以改admin目录登录时候自己...

    ASP.NET3.5从入门到精通

    16.1.3 ASP.NET 2.0 AJAX 16.1.4 ASP.NET 3.5 AJAX 第一篇窗口与界面编程 19 16.1.5 AJAX 简单示例 16.2 ASP.NET 3.5AJAX 控件 16.2.1 脚本管理控件(ScriptManger) 16.2.2 脚本管理控件(ScriptMangerProxy) ...

    ASP.NET 3.5 开发大全

    16.1.3 ASP.NET 2.0 AJAX 16.1.4 ASP.NET 3.5 AJAX 16.1.5 AJAX简单示例 16.2 ASP.NET 3.5AJAX控件 16.2.1 脚本管理控件(ScriptManger) 16.2.2 脚本管理控件(ScriptMangerProxy) 16.2.3 时间控件(Timer) ...

    ASP.NET 3.5 开发大全word课件

    16.1.3 ASP.NET 2.0 AJAX 16.1.4 ASP.NET 3.5 AJAX 16.1.5 AJAX简单示例 16.2 ASP.NET 3.5AJAX控件 16.2.1 脚本管理控件(ScriptManger) 16.2.2 脚本管理控件(ScriptMangerProxy) 16.2.3 时间控件(Timer) ...

    ASP.NET 3.5 开发大全11-15

    16.1.3 ASP.NET 2.0 AJAX 16.1.4 ASP.NET 3.5 AJAX 16.1.5 AJAX简单示例 16.2 ASP.NET 3.5AJAX控件 16.2.1 脚本管理控件(ScriptManger) 16.2.2 脚本管理控件(ScriptMangerProxy) 16.2.3 时间控件(Timer) ...

    ASP.NET 3.5 开发大全1-5

    16.1.3 ASP.NET 2.0 AJAX 16.1.4 ASP.NET 3.5 AJAX 16.1.5 AJAX简单示例 16.2 ASP.NET 3.5AJAX控件 16.2.1 脚本管理控件(ScriptManger) 16.2.2 脚本管理控件(ScriptMangerProxy) 16.2.3 时间控件(Timer) ...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    1.2.2 ASP.NET2.0 1.2.3 ASP.NET3.5 1.2.4 ASP.NET4 1.2.5 Silverlight 1.3 总结 第2章 Visual Studio 2.1 Visual Studio 2.1.1 网站和Web项目 2.1.2 创建无项目文件的网站 2.1.3 设计网页 2.2...

    一款基于asp.net技术业内领先的Web2.0社区平台。

    一款基于asp.net技术业内领先的Web2.0社区平台。结合默认提供的博客、相册、文件、网摘、迷你博客、资讯、论坛、活动、圈子等应用模块,您可以快速的搭建SNS互动社区。借助SpaceBuilder平台的服务(用户、朋友、私信...

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    本讲将通过实例比较ASP.NET下的三种典型URL重写方案——ISAPI重写(使用开源组件IIRF),ASP.NET2.0内置的urlMappings和基于自定义HTTPModule的URL重写(使用NBear.Web中的UrlRewriteModule实现),并探讨URL重写中...

    无忧招聘系统 v2.0 招聘网站源码

    5:服务里要求启动asp.net状态服务,不然后台登录不了 6:后台路径http://localhost/admin/login.aspx(用户名及密码:admin admin) 如果在安装过程有不明白的请加无忧招聘系统技术支持 本系统只用于本地测试,只能用...

    tourex 6.0 高级版 旅游管理系统 仅供研究学习

    1. WIN2003:需要站点目录给予ASP.NET , IUSER , IWAN , NETWORK SERVICE 读写权限。 2. WIN2008:需要站点目录给予USER , NETWORK SERVICE读写权限。 注:虚拟主机一般都会有这些权限 , 自己的服务器一定要加这些...

Global site tag (gtag.js) - Google Analytics