摘要: RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)角色是什么?可以理解为一定数量的权限的集合,权限的载体。例如:一个论坛系统,“超级管理员”、“版主”都是角色。版主可管理版内的帖子、可管理版内的用户等,这些是权限。要给某个用户授予这些权限,不需要直接将权限授予用户,可将“版主”这个角色赋予该用户。当用户的数量非常大时,要给系统每个用户逐一授权(授角色) 阅读全文
posted @ 2012-04-25 11:42 齐鲁青未了 阅读(399) 评论(1) 推荐(0)
摘要: 我们研究一下上面的代码我们是从Init函数开始的。这个函数把处理程序的AuthenticateRequest事件插入Application(应用程序)对象的事件处理程序列表中。这将导致引发AuthenticationRequest事件的时候Application调用该方法。我们的HTTP模块初始化之后,我们就可以调用它的AuthenticateRequest方法来鉴别客户端请求。AuthenticateRequest方法是该安全/身份认证机制的核心。在这个函数中:1和2行提取HttpApplication和HttpContext对象。3到7行检测是否没有给我们提供了用户id或密码。如果没有提供 阅读全文
posted @ 2012-04-21 20:19 齐鲁青未了 阅读(237) 评论(0) 推荐(0)
摘要: ASP.NET的输出缓存(即静态HTML)在.NET4.0前一直是基于内存的。这意味着如果我们的站点含有大量的缓存,则很容易消耗掉本机内存。现在,借助于.NET4.0中的OutputCacheProvider,我们可以有多种选择创建自己的缓存。如,我们可以把HTML输出缓存存储到memcached分布式集群服务器,或者MongoDB中(一种常用的面向文档数据库,不妨阅读本篇http://msdn.microsoft.com/zh-cn/magazine/gg650661.aspx)。当然,我们也可以把缓存作为文件存储到硬盘上,考虑到可扩展性,这是一种最廉价的做法,本文就是介绍如果构建自定义文件 阅读全文
posted @ 2012-04-21 20:13 齐鲁青未了 阅读(205) 评论(0) 推荐(0)
摘要: 想当初在只使用WebForms框架并以服务端为中心的开发模式时,发现ASP.NET好复杂。一大堆服务端控件,各有各的使用方法,有些控件的事件也很重要,必须在合适地时机去响应,还真有些复杂。后来逐渐发现这些复杂的根源其实就是服务器控件相关的抽象逻辑。随着Ajax越用越多,可能有些人也做过这些事情:【新建一个ashx文件,读取一些用户的输入数据,Form, QueryString,然后调用业务逻辑代码,将处理后的结果序列化成JSON字符串再发给客户端】,这样也能完成一次请求。不知大家有没有做过这类事情,反正我是做过的。慢慢地,我也嫌烦了,这些事情中除了调用业务逻辑部分,都是些体力活嘛。于是想,写点 阅读全文
posted @ 2012-04-21 20:12 齐鲁青未了 阅读(186) 评论(0) 推荐(0)
摘要: ASP.NET服务器控件是一种服务器端组件,它封装了用户界面及其相关的功能。ASP.NET 服务器控件直接或间接地从 System.Web.UI.Control 类派生。ASP.NET 服务器控件的超集包括 Web 服务器控件、HTML 服务器控件(基础控件)、数据控件和 ASP.NET 移动控件。为Web页面及其控件保持状态信息是非常有必要的。然而,由于Web应用程序创建于HTTP协议的顶层,这是一个无状态的协议,因此,保持状态信息则变得非常困难。为了解决这个问题,ASP.NET 2.0技术提供了多种解决方案,例如,利用Session、Cookie、视图状态、控件状态、隐藏域、查询字符串、个 阅读全文
posted @ 2012-04-21 20:05 齐鲁青未了 阅读(190) 评论(0) 推荐(0)
摘要: 关于ASP.NET的实用技巧,其实我们已经接触到很多了。下面为大家总结一下,供大家参考。1.跟踪页面执行设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化。ASP.NET中启用页面跟踪非常方便,只需在Page指令中加入Trace="True"属性即可:<%@PageLanguage="C#"Trace="true">跟踪信息可以分为两类:a.页面执行详细情况其中主要包括页面生命周期中各事件列表、控件树列表(可以查看每个控件的HTML字节数以及ViewState字节数)、Ses 阅读全文
posted @ 2012-04-21 20:02 齐鲁青未了 阅读(211) 评论(0) 推荐(0)
摘要: 下面本就简单介绍在项目中常用的加密及解密的方法一、MD5加密算法[.NET类库中自带的算法 MD5是个不可逆的算法 没有解密的算法]其实在ASP.Net编程中加密数据。在DotNet中有自带的类:System.Web.Security.HashPasswordForStoringInConfigFile() publicstringmd5(stringstr,intcode) { if(code==16)//16位MD5加密(取32位加密的9~25字符) { returnSystem.Web.Security.FormsAuthentication.HashPasswordForStoring 阅读全文
posted @ 2012-04-21 19:54 齐鲁青未了 阅读(227) 评论(0) 推荐(0)
摘要: 对于加密和解密,我们都知道。下面主要介绍的是ASP.NET中的加密和解密。一、数据加密/编码算法列表常见用于保证安全的加密或编码算法如下:1、常用密钥算法密钥算法用来对敏感数据、摘要、签名等信息进行加密,常用的密钥算法包括:DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;RC2和 RC4:用变长密钥对大量数据进行加密,比 DES 快;IDEA(International Data Encryption Algorithm)国际数据加密算 阅读全文
posted @ 2012-04-21 19:53 齐鲁青未了 阅读(216) 评论(0) 推荐(0)
摘要: 关于ASP.NET的实用技巧,其实我们已经接触到很多了。下面为大家总结一下,供大家参考。1.跟踪页面执行设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化。ASP.NET中启用页面跟踪非常方便,只需在Page指令中加入Trace="True"属性即可:<%@PageLanguage="C#"Trace="true">跟踪信息可以分为两类:a.页面执行详细情况其中主要包括页面生命周期中各事件列表、控件树列表(可以查看每个控件的HTML字节数以及ViewState字节数)、Ses 阅读全文
posted @ 2012-04-21 19:49 齐鲁青未了 阅读(153) 评论(0) 推荐(0)
摘要: ASP.NET中页面重定向的使用的很频繁,实现方法也有不同,自己也试过几种,现在总结一下。一、Transfer Execute Redirect重定向方法介绍1.Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行)。服务器停止解析本页,保存此页转向前的数据后,再使页面转向到m2.aspx, 并将转向前数据加上m2.aspx页结果返回给浏览器。2.Server.Execute方法: Server.Execute("m2.aspx"); 服务器保存此页转向前的数据后,使页面转向到m2.asp 阅读全文
posted @ 2012-04-21 19:48 齐鲁青未了 阅读(205) 评论(0) 推荐(0)