带CHECK权限树,我是这样的,为每个节点都设置一个ID号,如果该节点具有权限就把该ID号保存到数据库(即01|11|02|12),到时候程序运行打开一个窗体判断某个按钮有没具有权限也是根据ID号来的,该ID号要跟权限树里的ID号一一对应,放到一个公共变量里,到时候就判断该ID号能不能在数据库中查找到,找到就具有该权限,没找到就没有权限,
public bool roleunique(string ItemUnique)  //判断权限
{
  bool boo=false; 
  string[] GUserRole=role.split("|");  //role为具有权限的值
  for (int i = 0; i < GUserRole.Length - 1; i++)
    {
        if (GUserRole[i].IndexOf(ItemUnique.ToString()) >= 0)
           {
               boo=true;
               break;
            }
     }
return boo;
}public bool roleunique_btn(string ItemUnique,button btn)  //判断按钮权限
{
  bool boo=roleunique( ItemUnique);
  if (!boo)
  {
   btn.visible=false;
  }
}调用:
if (A模块)
{    
    rolLookIChg:=rolSELclLookIChg0; //rolSELclLookIChg为公共变量=01
    rolLookCChg:=rolSELclLookCChg0;  //rolSELclLookCChg=11
}else if(B模块)
{
    rolLookIChg:=rolSELclLookIChg1; //rolSELclLookIChg为公共变量=02
    rolLookCChg:=rolSELclLookCChg1;  //rolSELclLookCChg=12
}     //如果这里模块多的话,这方法很不好N个模块就有N个判断,请问有什么方法解决吗?
    bool rolchg=roleunique(rolLookIChg);
if (rolchg){...};
不知道你们做权限是如何设计的?给点参考参考谢谢!~