日期:2014-05-18  浏览次数:20461 次

控制用户访问权限的实现原理
大家好,我是学ASP,NET的新手,我想请教如何实现对站点用户访问权限的控制,先前也查了不少资料,但都得不到答案,所以来这麻烦大家了^_^
      在ASP.NET2。0中可以通过WEB.CONFIG文件进行页面级的授权,如下:
<location   path= "Admin.aspx "   >
<system.web>
<authorization>
<allow   roles= "角色名…… ">
<authorization/>
<system.web/>
<location/>
这样设置以后用户在登陆到站点之后应用程序会根据用户的角色来判断有没权限访问页面,请问实现的原理是什么?ASP,NET是怎么用WEB.CONFIG这个文件里设置的值的?

------解决方案--------------------
原理:一个请求到达IIS,传递给CLR,通过CLR的处理返回html页面。在这个过程中,会加载一系列模块,触发一系列事件。当加载验证模块的时候,会触发Begin_Request事件,你可以捕捉这个事件,在这个事件里添加相应的处理程序,来判断,绑定用户的角色

实现:在web.config中设置访问权限后,可以在global.asax或者自定义模块中添加事件处理程序,来实现基于角色的授权。