在.net 中依据页的角色验证方式产生相匹配的菜单
看了很多人都是自己程序获得用户的角色权限,再判断并编写相应的功能菜单,其实.net 中可以允许开发者自己拼合这些功能;
废话不说,网上也有很多这样的资料,但我感觉说教太多,自己来简单归纳一下方便给大家!
注:站点必须为asp.net 标准验证方式。自定义cookie认证,自定义Session方式的可以一边凉快去了!
具体条件
1、为站点准备SiteMap
在站点根目录建立一个Web.sitemap 配置文件,例:
<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 中设置就可以,跟平时设置一样
<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 中启用站点地图角色过滤配置,想省事可以直接复制粘贴
<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 中依据页的角色验证方式产生相匹配的菜单相关推荐
- SSH远程管理及sshd服务支持验证方式
一.SSH远程管理 1.●SSH定义 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录.远程复制等功能. SSH协议对通信双方的数据传输进行了加密处理,其中包括用户 ...
- Asp.net中基于Forms验证的角色验证授权[转]
Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活. Forms 验证方式对基于用户的验证授 ...
- 【转载】Asp.Net中基于Forms验证的角色验证授权
Asp.Net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活. Forms 验证方式对基于用户的验证授 ...
- Asp.net中基于Forms验证的角色验证授权
Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活. Forms 验证方式对基于用户的验证授 ...
- ASp.net中Froms验证方式
微软的ASP.NET提供了3种用户验证方式,即Windows验证.窗体(Forms)验证和护照验证(Passport)验证. 由于验证方式各不相同,因而这3种验证方式在使用范围上也有很大的不同, Wi ...
- 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 ...
- aws rds监控慢sql_AWS RDS SQL Server中的高级Windows身份验证配置
aws rds监控慢sql This article will cover advanced configurations for Windows Authentication in AWS RDS ...
- vue中axios如何实现token验证
title: vue中axios如何实现token验证 date: 2018-02-08 17:50:07 tags: [axios,vue] 继上篇实现Auth认证之后,然后每个跳转页面都会在后端验 ...
- 基于form的身份验证怎样设置一个特例(使某页不需要验证)
问题描述: 在web.config中做了如下设置 <authentication mode="Forms"> <forms loginUrl="logo ...
最新文章
- wust 1599弗洛伊德
- 深入理解JavaScript定时机制
- iOS最好用的引导页
- mysql 22001_mysql ERROR 1264 (22003): Out of range value for column 'x' at row 1 错误
- java jdk 1.8 配置_java_Day01: java的jdk环境变量配置(1.8)
- 周五话营销 | 健身房花式卖卡,诠释点击营销流
- 数学--数论--HDU 12151七夕节 Plus (因子和线性筛)
- 前端学习(2423):补充markdown语法补充
- nbi可视化_教您通过NBI大数据可视化工具零编码轻松实现桑基图的制作
- 自己常用的分页SQL
- 又一轮子?Typescript+React+Redux,放弃saga,支持服务器渲染同构
- 苹果ID登陆第三方有漏洞?硬核!Gartner报告腾讯云数据库增速国内第一;“小米快递”商标注册,这是要入局物流领域?...
- 人工智能会使人类整体性地沦为彻底的“无用阶级”吗?
- 【蓝牙开发】低功耗蓝牙ATT/GATT/Profile/Service/Characteristic规格解读
- unity相机远近缩放和拖拽移动
- linux中shell的小括号、大括号的用法区别
- Html定义网页背景色
- 使用Java开发一个做数据共享的联盟链思路
- GNS 3中 Solar Putty 背景颜色修改
- [P3518]strongbox
热门文章
- dataloader 源码_pytorch :: Dataloader中的迭代器和生成器应用
- BZOJ-3289-Mato的文件管理-莫队+树状数组
- CVPR 2018 SA-Siam:《A Twofold Siamese Network for Real-Time Object Tracking》论文笔记
- 避免出现anr的方法_ANR原因及解决方法
- python编辑用户登录界面_python编辑用户登入界面的实现代码
- 软件开发规范和标准_社交APP,社交直播软件开发怎样才可靠了?
- CentOS7.2最小化安装后系统优化
- 洛谷 2820 局域网
- 安卓在代码中设置TextView的drawableLeft、drawableRight、drawableTop、drawableBottom
- PHP:验证邮箱合法性