看了很多人都是自己程序获得用户的角色权限,再判断并编写相应的功能菜单,其实.net 中可以允许开发者自己拼合这些功能;
废话不说,网上也有很多这样的资料,但我感觉说教太多,自己来简单归纳一下方便给大家!

注:站点必须为asp.net 标准验证方式。自定义cookie认证,自定义Session方式的可以一边凉快去了!

具体条件
   1、为站点准备SiteMap
      在站点根目录建立一个Web.sitemap 配置文件,例:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="~/Default.aspx" title="首页"  description="" >
        <siteMapNode url="~/Register.aspx" title="注册"  description="" />
        <siteMapNode url="~/Login.aspx" title="登陆"  description="" />
      <siteMapNode url="~/Album/Default.aspx" title="个人管理" description="">
        <siteMapNode url="~/Album/AlbumManager.aspx" title="相册管理" description="" />
        <siteMapNode url="~/Album/ImageUploader.aspx" title="图片上传" description="" />
        <siteMapNode url="~/Album/ImageManager.aspx" title="图片管理" description="" />
      </siteMapNode>
    </siteMapNode>
</siteMap>

注意:第一级节点只能有1个,其他节点就随意了,可以把全站所有有关的页都编写进来,也可以只写有权限控制相关的页,这个是可以继承的。
   安装有MSDN2005的朋友可以看此内容:ASP.NET 站点地图
      ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetcon/html/6b85a558-1df8-44cf-bea6-62e61bcc8d20.htm
  
   2、为文件或目录设置访问权限
      在相关目录的Web.config 中设置就可以,跟平时设置一样

<system.web>
      <authorization>
        <!-- 当前目录由Album 角色的用户才可以访问 -->
        <allow roles="Album" />
        <deny users ="*"/>
      </authorization>
    </system.web>
  
  <location path="ImageUploader.aspx">
    <system.web>
      <authorization>
        <!-- ImageUploader.aspx 只能带Blog角色的用户才可以访问 -->
        <allow roles="Blog"/>
        <deny users ="*"/>
      </authorization>
    </system.web>
  </location>

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>
  </system.web>

就这样就OK了!测试一把~~!

1、拖一个Menu 控件到页面上,并新建一个数据源类型为“站点地图”类型,名字随意。点OK就配置好了!

测试用例1:(没有登陆以前,只显示根目录下谁都可以访问的文件)
    
   测试用例2:(登陆后,具备Album 角色但不具备Blog 角色能力)
   
   测试用例3:(登陆后,具备Album角色也具备Blog 角色)
   

完成收工,回家了,显然这样的方式,大量减少的代码,而且把页面文件或目录跟角色绑定起来,实在是非常方便的。
还想多说点,但MM在家病倒了,所以明天再说吧!

转载于:https://www.cnblogs.com/SUNBOY/archive/2006/10/11/526587.html

在.net 中依据页的角色验证方式产生相匹配的菜单相关推荐

  1. SSH远程管理及sshd服务支持验证方式

    一.SSH远程管理 1.●SSH定义 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录.远程复制等功能. SSH协议对通信双方的数据传输进行了加密处理,其中包括用户 ...

  2. Asp.net中基于Forms验证的角色验证授权[转]

    Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活. Forms 验证方式对基于用户的验证授 ...

  3. 【转载】Asp.Net中基于Forms验证的角色验证授权

    Asp.Net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活. Forms 验证方式对基于用户的验证授 ...

  4. Asp.net中基于Forms验证的角色验证授权

    Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活. Forms 验证方式对基于用户的验证授 ...

  5. ASp.net中Froms验证方式

    微软的ASP.NET提供了3种用户验证方式,即Windows验证.窗体(Forms)验证和护照验证(Passport)验证. 由于验证方式各不相同,因而这3种验证方式在使用范围上也有很大的不同, Wi ...

  6. aws rds监控慢sql_AWS RDS SQL Server中的初始Windows身份验证配置

    aws rds监控慢sql In this article, we will be exploring the process of enabling Windows authentication i ...

  7. aws rds监控慢sql_AWS RDS SQL Server中的高级Windows身份验证配置

    aws rds监控慢sql This article will cover advanced configurations for Windows Authentication in AWS RDS ...

  8. vue中axios如何实现token验证

    title: vue中axios如何实现token验证 date: 2018-02-08 17:50:07 tags: [axios,vue] 继上篇实现Auth认证之后,然后每个跳转页面都会在后端验 ...

  9. 基于form的身份验证怎样设置一个特例(使某页不需要验证)

    问题描述: 在web.config中做了如下设置 <authentication mode="Forms"> <forms loginUrl="logo ...

最新文章

  1. wust 1599弗洛伊德
  2. 深入理解JavaScript定时机制
  3. iOS最好用的引导页
  4. mysql 22001_mysql ERROR 1264 (22003): Out of range value for column 'x' at row 1 错误
  5. java jdk 1.8 配置_java_Day01: java的jdk环境变量配置(1.8)
  6. 周五话营销 | 健身房花式卖卡,诠释点击营销流
  7. 数学--数论--HDU 12151七夕节 Plus (因子和线性筛)
  8. 前端学习(2423):补充markdown语法补充
  9. nbi可视化_教您通过NBI大数据可视化工具零编码轻松实现桑基图的制作
  10. 自己常用的分页SQL
  11. 又一轮子?Typescript+React+Redux,放弃saga,支持服务器渲染同构
  12. 苹果ID登陆第三方有漏洞?硬核!Gartner报告腾讯云数据库增速国内第一;“小米快递”商标注册,这是要入局物流领域?...
  13. 人工智能会使人类整体性地沦为彻底的“无用阶级”吗?
  14. 【蓝牙开发】低功耗蓝牙ATT/GATT/Profile/Service/Characteristic规格解读
  15. unity相机远近缩放和拖拽移动
  16. linux中shell的小括号、大括号的用法区别
  17. Html定义网页背景色
  18. 使用Java开发一个做数据共享的联盟链思路
  19. GNS 3中 Solar Putty 背景颜色修改
  20. [P3518]strongbox

热门文章

  1. dataloader 源码_pytorch :: Dataloader中的迭代器和生成器应用
  2. BZOJ-3289-Mato的文件管理-莫队+树状数组
  3. CVPR 2018 SA-Siam:《A Twofold Siamese Network for Real-Time Object Tracking》论文笔记
  4. 避免出现anr的方法_ANR原因及解决方法
  5. python编辑用户登录界面_python编辑用户登入界面的实现代码
  6. 软件开发规范和标准_社交APP,社交直播软件开发怎样才可靠了?
  7. CentOS7.2最小化安装后系统优化
  8. 洛谷 2820 局域网
  9. 安卓在代码中设置TextView的drawableLeft、drawableRight、drawableTop、drawableBottom
  10. PHP:验证邮箱合法性