关于web应用程序安全的思考(二)
2008-11-26 13:35:57 来源:WEB开发网1.首先我的用户,角色都是可以动态变化的(可以让用户新增,删除)
2.其次我的用户是可以根据其具体业务需求来随时调整某个用户或角色的权限的(也就是说他们可以自己分配权限)
3.遇到像主管休假时,还可以根据其自己的设定让用户将其权限再分配给其它用户来完成诸如代理的功能。
4.我有很多的企业应用系统,我要集中管理我的用户,角色,以及它们的权限(一个专门的权限管控或分配系统)
在关于web应用程序安全的思考(一)的最后,我给出了一个权限管控类的大致框架。
它有以下几个特点:
1.它是一个HttpModule
2.它捕获其中的AuthorizeRequest事件
3.它在这个事件中进行提取用户ID(认证)和判断用户是否有权(授权),以及对于没有权限的处理动作(拒绝)三个部分。
所以我们的安全管控模组的设计都从第3点的这三个部分出发。
首先我们要设计这三个接口来:
1.认证接口
Interface IAuthenticate
2.授权接口
{
//没有传参数是因为可以通过HttpContext.Current来获取这次请求的所有上下文信息
//返回用户标识(userid),如果用户没有登录,则返回null
string Authenticate();
}Interface IAuthorize
3.无权登录时处理的动作
{
//将用户id传入进行权限判断,同样其它参数通过HttpContext.Current来获得
//返回false表示无权登录
bool Authorize(string userid);
}Interface IRequestRefuser
{
//当无权时进行此方法进行拒绝
void Refuse();
}
关于这3个接口如何使用,其实在(一)中我有代码,把getuserid,hasright等方法做替换即可。
更多精彩
赞助商链接