- 浏览: 1021595 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (445)
- Java (22)
- J2EE (18)
- Flex (102)
- Flex-blazeds (1)
- Flex-FABridge (2)
- Flex4 (3)
- CheckStyle (2)
- PowerDesigner (0)
- POI (2)
- Java2Word (2)
- 杂项 (15)
- 日记 (3)
- 数据库-oracle (41)
- 数据库-SQLServer (7)
- 中间件 (1)
- 英语 (8)
- C# (43)
- ASP.net (72)
- ASP.net MVC (28)
- 微软-Entity Framework (19)
- JavaScript (22)
- JQuery (31)
- EasyUI (3)
- VS2010 (4)
- CVS (1)
- Tomcat (3)
- Linux (1)
- 遗留问题 (1)
- iphone (1)
- MAC (0)
- 系统 (2)
- Web Service (4)
- Cache Manager (1)
- PMP (1)
- WCF (10)
- BootstrapJs (1)
- Web API (6)
- Go语言 (0)
- 网络协议 (2)
- Redis (10)
- RabbitMQ (10)
- Git (3)
- Kafka (5)
- ELK (5)
- Nginx (3)
- 测试 (2)
最新评论
-
ygm0720:
Table行拖拽自己实现 -
程乐平:
Flex4开发视频教程(27集)下载http://bbs.it ...
Flex4教程 -
liuweihug:
Jquery+asp.net 后台数据传到前台js进行解析的办 ...
AJAX $.toJSON的用法或把数组转换成json类型 -
weilikk:
谢谢谢谢!!
javascript IE下不能用 trim函数解决方法 -
gxz1989611:
vigiles 写道请问楼主:[Fault] exceptio ...
blazeds推送技术至Flex
上篇讲到如何配置membership以及ASP.NET Forms身份验证,本篇将对权限控制部分,做一个详细的解释。
在所有的基本配置都完毕后,我们还需要配置哪些目录允许被匿名访问,哪些是需要用户登录后允许访问的页面。
首先:我们在项目中建立一个admin文件夹,在admin文件夹中添加一个web.config文件,然后在其中的<system.web>节点下面添加如下代码:
<authorization> <allow users="admin"/> <deny users="*"/> </authorization>
然后我们在admin目录下再添加一个页面,然后访问该页面,看一下效果。如果您按照我们上篇所说的内容全部正确配置了,那么你会发现,页面并没有显示出来,而是跳转到了我们之前在<authentication >下<forms >节点的LoginUrl属性所指向的页面,要求登录!这不就是我们需要的效果吗?
现在来解释一下上面配置的含义:
<allow>节点:顾名思义就是允许访问的意思,< allow users ="admin" /> 就是允许用户名为"admin"的用户访问。
<deny>节点:就是禁止访问。这里用到了一个通配符“* ”,通配符有两个:*代表所有用户,还有一个“?”代表所有匿名用户。所以< deny users ="*" /> 就是不允许所有用户访问的意思啦,当然如果是:< deny users ="?" /> 那意思就是不允许所有匿名用户访问。
需要说明的是:所有的配置都是按照从上到下的顺序来匹配的,一但匹配成功,就不再向下匹配。举个例子:
<authorization> <allow users="admin"/> <allow users="zhangsan"/> <deny users="*"/> </authorization>
ASP.NET首先检测当前登录的用户名=="admin"?如果等于则不继续判断,直接允许该用户访问。如果不等于则继续判断当前登录的用户名=="zhangsan"等于,则允许访问,不等于则接着向下,读取到了< deny users ="*" /> 这个配置,拒绝所有用户访问,跳转到LoginUrl指定的页面要求重新登录。
可是如果这样,只能实现目录一级的权限控制,如果要控制某个文件的访问权限,又该如何做呢?难道非得把这个文件放到一个文件夹中,然后再添加web.config进行控制么?答案是否定的,对于单个文件的访问控制,ASP.NET也有相应的配置:
<configuration> <location path="a.aspx"> <system.web> <authorization> <deny users="?"/> </authorization> </system.web> </location> <system.web> <authorization> <allow users="admin"/> <allow users="zhangsan"/> <deny users="*"/> </authorization> </system.web> </configuration>
看上面这个配置,我们可以在<system.web>节点之上(必须是上面 )再增加一个<location>节点,通过path属性指明location内的配置是单独针对哪个文件即可。具体内容我就不多说了,想必大家也都看得懂。不过需要注意的一点就是:location节点可以有多个。这意味着同一个目录下的不同文件可以有不同的访问权限。
好了,配置到这里算是完成一多半了。还有一个问题就是:如果我们的用户比较多,那么需要在配置文件中把这些用户全部罗列其中。并且以后添加 了新用户,还得继续修改配置,太麻烦了!该怎么办呢?通用的做法就是引入角色的概念。给所有的用户分配一个角色,比如:users,admin等。然后我 们只需要控制这些角色的访问权限即可。以后添加了新用户只需给这个新用户分配角色,而不用去修改配置,实在是方便。其实,membership也提供了角 色的概念,只需要简单的配置一下就可以实现了。
要实现角色功能,非常简单,我们还是去machine.config的<system.web>节点下面找 到<roleManager>节点,然后整个节点复制过来到web.config中去,一般会有两个<add>子结点,我们删除 一个,留下一个就可以了。全部内容如下:
<roleManager> <providers> <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </roleManager>
这个配置比较简单,各项配置和前面配置都一样,不再多说。稍微修改一下:
<roleManager enabled="true" defaultProvider="myAspNetSqlRoleProvider"> <providers> <add name="myAspNetSqlRoleProvider" connectionStringName="ConnectionString" applicationName="TestMembership" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </roleManager>
注意:这个roleManager多了个属性enable="true",这是因为角色管理默认情况下是关闭的,所以我们必须得设置为开启才行。
好了,所有的配置到这里算是全部结束了。欲知后事如何且听下回分解:《ASP.NET身份验证机制membership入门——编码篇》。
发表评论
-
DotNet 资源大全(下)
2018-07-12 10:18 584HTML 和 CSS(HTML and CSS) ... -
DotNet 资源大全(上)
2018-07-12 10:17 728API 框架 NancyF ... -
asp.net mvc处理css和js版本问题
2018-05-24 16:40 1393当服务的修改了js和css内容后,发布到II ... -
分布式系统调用链监控
2018-02-22 14:36 861分布式系统调用链监 ... -
IIS 优化
2017-06-28 21:57 1668通过对IIS7的配置进行优化,调整IIS7应用池的队列长度, ... -
IIS初始化(预加载),解决第一次访问慢,程序池被回收问题
2017-06-28 21:39 2070读在最前面: 1、本文以IIS8,Windows Se ... -
使用C# 和Consul进行分布式系统协调
2017-05-11 10:41 1300随着大数据时代的到来,分布式是解决大数据问题的一个主要手段, ... -
查看IIS上面的每个网站分别用了多少内存
2017-05-05 12:57 876IS服务器上面运行了多个网站,想查看每个网站具体使用了系统多 ... -
Asp.net WebApi版本控制
2017-03-06 10:34 829关web api的版本控制网上有很多,如Web API 版本 ... -
.Net下RabbitMQ的使用(9) -- 在WCF下使用RabbitMQ
2016-12-19 10:42 1010RabbitMQ .net客户端通过自定义的Binding ... -
.Net下RabbitMQ的使用(8) -- 远程过程调用RPC
2016-12-19 10:42 1057RPC是在计算中是一种 ... -
.Net下RabbitMQ的使用(7) -- 消息的传输控制
2016-12-19 10:41 975前文中也多次提到消息传输的一些概念,这一篇比较全面的介绍一 ... -
.Net下RabbitMQ的使用(6) -- 持久化
2016-12-19 10:41 751消息的持久化是消息 ... -
.Net下RabbitMQ的使用(5) -- 路由机制
2016-12-19 10:41 532理清路由机制是了解RabbitMQ来龙去脉的关键。在前面的 ... -
.Net下RabbitMQ的使用(4) -- 订阅和发布
2016-12-16 10:26 1143消息的订阅和发布是使 ... -
.Net下RabbitMQ的使用(3) -- 竞争的消费者
2016-12-16 10:23 2491在上一篇文章中,演示了一个发送者和一个消费者的情况。这一篇介 ... -
.Net下RabbitMQ的使用(2) -- 发送接收消息
2016-12-16 10:20 1249在安装和配置完成Rabbit ... -
RabbitMQ消息队列(一): Detailed Introduction 详细介绍
2016-12-16 10:12 6071. 历史 RabbitMQ是 ... -
RabbitMQ 安装和监控
2016-12-16 10:14 859在Windows上安装Rabbit MQ 指南,最好的是这 ... -
Autofac创建实例的方法总结
2016-12-07 14:54 5521、InstancePerDependency 对每一个依 ...
相关推荐
Forms鉴别提供的是一种验证用户的方法,而ASP.NET Membership的作用是表示用户的信息。 ASP.NET Membership使用的是提供器模式。ASP.NET Framework内包含了两个Membership提供器: q SqlMembershipProvider——...
asp.net CMS 物流管理系统源码——宝宝asp.net CMS 物流管理系统源码——宝宝asp.net CMS 物流管理系统源码——宝宝asp.net CMS 物流管理系统源码——宝宝asp.net CMS 物流管理系统源码——宝宝asp.net CMS 物流管理...
ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP...
ASP.NET 身份验证方式是 ASP.NET 应用程序中的一种身份验证机制,它用于验证客户端的身份,以确保只有经过身份验证的用户可以访问 ASP.NET 应用程序。ASP.NET 身份验证方式可以分为三种:匿名身份验证、基本身份...
- **改进的安全性**:ASP.NET4提供了增强的安全特性,包括改进的身份验证和授权机制,有助于保护Web应用免受攻击。 - **更好的性能**:通过优化的编译器和运行时环境,ASP.NET4能够提供比以往更快的执行速度。 - **...
本资源“ASP.NET 1.1入门经典——Visual C#.NET 2003编程篇”提供了一个学习ASP.NET 1.1的基础教程,特别关注了使用C#语言进行编程的方法。Visual C#.NET 2003是.NET Framework 1.1时代的集成开发环境(IDE),它为...
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part05
- ASP.NET提供了身份验证(Authentication)和授权(Authorization)机制,如Windows身份验证、Forms身份验证等。 - 防止XSS和CSRF攻击的安全最佳实践也是ASP.NET开发的重要方面。 8. **配置与部署** - Web.config...
《Asp.Net2.0 完全开发指南——基于VB》随书光盘是一个压缩文件,其中包含了关于Asp.Net2.0技术的详细学习资料,特别针对使用Visual Basic(VB)编程语言的开发者。Asp.Net是微软推出的一个强大的Web应用程序框架,...
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part11
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part09
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part10
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part12
此外,ASP.NET的部署和配置也是一个关键环节,IIS服务器设置、应用程序池配置、错误处理机制等都会影响系统的稳定性和响应速度。 总的来说,《ASP.NET开发在线英语自学系统——课程及自测管理的设计》涵盖了Web应用...
圣殿祭司的ASP.NET.2.0.开发详解——使用C# 共四部分
7. ** Membership 和 Role Management **:ASP.NET 2.0引入了会员(Membership)和角色(Role)管理,用于用户身份验证和授权,简化了安全性的实现。 8. **配置管理**:ASP.NET 2.0的配置系统允许开发者在不修改...
在Asp.Net开发中,HttpHandler是核心组件之一,它负责处理...在"Asp.Net底层解析(五)——HttpHandler详解"的博客中,作者通过实际的测试代码帮助读者深入理解了这一概念,为ASP.NET开发提供了宝贵的知识和实践经验。
ASP.NET Core微服务(一)——【完整API搭建及访问过程】——sql脚本
圣殿祭司的ASP.NET.2.0.开发详解——使用C#.part02