前言
一般的软件登录之后都会判断一下权限,如果你只是普通的用户,我没有必要把所有的功能都给你显示出来,只显示最普通的权限即可。这次的机房也不例外,那结合对于七层的理解,如何根据输入的用户ID来判断你的权限呢?
详解
步骤
BLL层:
public DataTable levelBLL(Entity.UserInfo UserInfo)
{
//实例化工厂
Factory.LoginFactory fact = new Factory.LoginFactory();
IDAL.LoginIDAL idal = fact.CreateUser(); //直接走登录时的工厂层和IDAL层的方法即可
DataTable level = idal.selectUser(UserInfo);
return level;
}
Facade层:
public DataTable Selectlevel(Entity.UserInfo level1)
{
BLL.LoginBLL levelBLL = new BLL.LoginBLL(); //实例化
DataTable level = levelBLL.levelBLL(level1);
return level;
}
UI层:在提示“登陆成功之后”,进行权限判断
DataTable level = FLogin.Selectlevel(user); //走facade层的Selectlevel方法
if (level.Rows[0][2].ToString()=="学生")
{
frmStudent frmStudent = new frmStudent(); //实例化一个窗体
frmStudent.Show(); //显示实例化的窗体
}
else if (level.Rows[0][2].ToString()=="操作员")
{
frmOpert frmOpert = new frmOpert();
frmOpert.Show();
}
else
{
frmAdmin frmAdmin = new frmAdmin();
frmAdmin.Show();
}
涉及知识
1.level.Rows[0][2].ToString()=="学生"
level是自己返回的一个表,这个表的第0行第2列是“学生”的话,这显示学生窗体,如果不是的话走下面的判断,如果都不是的话显示管理员窗体,但是需要注意你的权限是不是在第2列,另外数据库里的字段是“学生 ”还是“学生”;
2.还是七层的走法,走到哪一步调用哪个窗体,最后怎么返回,返回的是什么,如此,判断权限就简单了。另外判断权限可以使用设计模式,小伙伴们知道用哪个模式吗?
总结
做过了再回头看就觉得很简单了,但是这前提是自己去做过了。