权限控制的思考

 

 

企业OA或者其他信息系统,权限控制是一个非常重要的模块,

权限控制包括功能权限和数据权限,这里主要思考功能权限控制。

给出几种种解决方法,可以单独使用或者结合一起使用:

一:使用拦截(Filter)

权限功能通过请求url路径进行管理,预先在数据库中存储用户(一般基于角色)允许访问的url,

然后在每一次http请求时进行验证,如果有权限,放行,否则拦截。

代码
public class SecurityModule : IHttpModule,IRequiresSessionState
{

#region IHttpModule 成员

void IHttpModule.Dispose()
{

}

void IHttpModule.Init(HttpApplication context)
{
context.AcquireRequestState
+= new EventHandler(ValidateRequest);
}

private void ValidateRequest(object sender, EventArgs e)
{
if 验证通过
就直接放行啦。
else
context.Server.Transfer("/Error.aspx");  

}
}

 

然后在httpModules 中进行相关设置即可

二:使用基类(实现和一差不多。不再介绍)

三:利用Spring.net AOP进行切面管理

在每个功能点执行时进行前置切入,进行权限验证,如果不通过就抛出异常或者跳转等等,关于前置切入的实现,可以参考上一篇文章,非常相似

通过.net的特性,可以对方法进行分类,如只读/读写/拒绝等等

 

posted on 2009-12-15 21:56  huihui-热带鱼  阅读(493)  评论(0编辑  收藏  举报