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

asp.net|导航|站点

  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控件来实现。在控件的属性中,有LogoutAction和LogoutPageUrl两个属性,可以来设定注销时是仅仅刷新当前页面、转向到某个页面或者转向到登录页面。

  (一)登陆

  如何设定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 & Certification" url="SiteMapTest.aspx?id=training" />
        <siteMapNode title="Books" url="SiteMapTest.aspx?id=books" />
        <siteMapNode title="Events & Webcasts" url="SiteMapTest.aspx?id=events" />
        <siteMapNode title="Patterns & 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_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 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="*"表示所有人都可以看到下面的页面,但是我们在规则中可以拒绝某些 角色的用户看到下面的相关页面(通过目录权限控制)

时间: 2024-02-28 10:28:03

ASP.NET 2..0站点登录、导航与权限管理的相关文章

集中权限管理系统-java 跨域单点登录结合集中权限管理 权限控制采用shiro

问题描述 java 跨域单点登录结合集中权限管理 权限控制采用shiro 这种需求的系统谁做过 之前 参考了 网上博客的 oauth2 但是发现不太符合我这个需求 因为oauth2只是授权 并不能解决 登录集中权限系统后 登录其他网站的问题 现在的需求是 用户权限系统只需要一个系统来 维护其他系统 没有用户系统 统一先通过集中权限系统登录后进行用户角色权限维护 如果先登录其他系统这跳转到集中权限系统进行先登录 而且也不能解决集中权限管理的问题 我想过可能需要redis来 实现这功能 但是 总感觉

ASP.NET 2.0站点地图搭建网站导航结构

asp.net|导航|站点 二. 使用SiteMap的方式 你可以以三种常见方式来使用在前一节所创建的站点地图文件: · 使用SiteMapPath控件 · 使用SiteMap数据源控件 · 使用SiteMap类 这个SiteMapPath控件允许你生成breadcrumb.图3显示出什么是breadcrumb. 图3:Breadcrumb导航 SiteMapPath控件显示各种层级的导航.例如,你可以点击父或根级别以往回导航或转到顶层.当然,你也可以定制导航层次. ASP.NET 2.0中还带

ASP.NET 2.0站点地图及开发使用网站导航结构

如果你曾经到过陌生的目的地旅行过,那么你一定知道地图的重要性- 它们能够帮助使你的旅行更舒适些.这个道理对于网站来说是同样的.一个网站 应该呈现给访问者一种简单而灵活的导航结构以便它们能够容易地导航到该网站 的不同部分.ASP.NET 2.0提供了一种称为SiteMap的特征-它帮助你实现 这一功能.本文将解释什么是站点地图并且描述如何开发使用它们的网站导航结构. 一.SiteMap 一个站点地图是一个XML文件(具有一个.sitemap扩展名)-它能够详 细地描述你的网站的整个导航布局.你可以

ASP.NET 2.0站点导航功能之建立导航

一.简介 任何由多个页面组成的网站都需要某种导航用户接口.一个导航用户接口可 能象一些该站点中的到另外一些页面的静态超级链接一样得简单,或者可能包含 菜单或树形控件的使用.但是,在为该站点创建一个导航用户接口之前,首先必 须定义站点的逻辑结构.(这个逻辑结构常常被参照为一个站点地图.)例如,一 个象Amazon.com这样的网站被组织成各个部分-其中包括产品栏如电子学书,计 算机书,DVD等等.其中的每个还可能含有子部分.书目按类型划分,象CD,小 说,历史书,浪漫书类,等等.典型地,这些逻辑结

用ASP+XML实现CSDN的菜单(数据库),可分权限管理.

我在开发公司OA系统的时候.想找一个CSDN的菜单.可是网上有这样的代码.可是不是基于数据库,也不能按权限管理.我就写了一个.我的这个.只有一个程序文件和一个数据库.文件很少,也很容易查错.但是功能完全实现了!数据库结构:Table:Menu ID parentid,int,4 MenuName,Char,20 Link,Char,50Table:UserLevel ID UserID,int,4 MenuID,int,4-------------------------------------

ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )

asp.net|treeview|web|程序|动态 TreeView 控件关键属性 CheckedNodes                 声明被选择的单个或者多个节点ExpandDepth                   声明TreeView控件展开的深度Nodes                               TreeNodeCollection 类型的节点集合SelectedNode                  当前被选择的节点ShowCheckBoxes   

求助 C#怎么通过用户登录来进行权限管理

问题描述 C#实现不同用户具有打开不同界面的权限.设计四个表:用户表.用户组表.权限(界面)列表,用户组与权限的关系表:然后做一个页面,赋予每个用户组不同的打开界面的权限需要保存到数据库.怎么做 解决方案 解决方案二: 解决方案三:这个太复杂了,,只想要简单的能实现的解决方案四:简单的就是,比如2个菜单(A,B),2个用户(X,Y),2个用户可以访问的菜单的权限已经配置在数据中,通过select*fromtb_userwhereuserid=''获取到用户的权限,在page_load页面里面,隐

理解并扩展 ASP.NET 2.0 中的站点导航系统

asp.net|导航|站点 摘要:ASP.NET 2.0 站点导航系统构建于一个功能强大.灵活的体系结构之上,设计这样的体系结构是为了使其具有可扩展性.本文探究站点提供程序的体系结构并提供一个示例提供程序,该提供程序将文件系统公开为站点导航的数据源,从而替代了标准的 Web.sitemap XML 文件. 简介 大多数 web 站点采用可视化导航的某种形式来帮助用户轻松地浏览站点,以及查找他们所需的信息和 Web 页.尽管不同站点之间的感观效果千差万别,但是通常会使用相同的基本元素 - 以导航栏

ASP.NET 2.0的新增服务、控件与功能

asp.net|控件 [导读]全文介绍了ASP.NET 2.0中新增的控件和功能,包括Master Pages,Data Source控件.Skin的支持.GridView和Details View的引入,在此基础上,ASP.NET 2.0的安全模型得到了极大的提高,包括登录控件.角色管理器.个性化等等方面的支持,在类库方面也增加了许多新特性,如全新的代码分隔模型.客户端回调等等,让读者对于ASP.NET的新特性有一个全面的了解. 在首次公诸于众以来的短短四年中,ASP.NET业已成为在Wind