当时开始重构的时候看了好多人的机房重构登录,几乎每个人都有一篇总结是关于机房重构登录的,我也纠结了好久,打算把自己的分享出来,如有不对,请纠正。
大部分人的登录都是有两个登录窗口,一般用户一个,操作员管理员一个。我做的就只有一个登录窗口,然后判断他们的权限再弹出来分别对应的功能菜单。
这里就不做详细介绍了
namespace Entity
{
public class UserInfo
{
public int UserName { get; set; }
public string PWD { get; set; }
public string Level { get; set; }
public string UserID { get; set; }
}
}
namespace IDAL
{
public interface LoginIDAL
{
DataTable SelectUser(Entity.UserInfo userInfo);
}
}
public class LoginDAL:IDAL.LoginIDAL
{
public DataTable SelectUser(Entity.UserInfo user)
{
SQLHelper sqlHelper = new SQLHelper();
SqlParameter[] sqlparams =
{
new SqlParameter("@userid",user.UserID ),
new SqlParameter("@password",user.PWD)
};
string sql = @"select * from User_Info where UserID=@userid and PWD=@password";
DataTable table = sqlHelper.ExecuteQuery(sql, sqlparams, CommandType.Text);
return table;
}
}
public class LoginFactory
{
string StrDB = System.Configuration.ConfigurationManager.AppSettings["DB"];
public IDAL.LoginIDAL CreateUser()
{
string ClassName = StrDB + "." + "LoginDAL";
return (IDAL.LoginIDAL)Assembly.Load(StrDB).CreateInstance(ClassName);
}
}
public class LoginBLL
{
public bool UserBLL(Entity.UserInfo user)
{
Factory.LoginFactory fact = new Factory.LoginFactory();
IDAL.LoginIDAL idal = fact.CreateUser();
DataTable table = idal.SelectUser(user);
bool flag;
if (table.Rows.Count == 0)
{
flag = false;
}
else
{
flag = true;
}
return flag;
}
public DataTable LevelBLL(Entity .UserInfo userInfo)
{
Factory.LoginFactory fact = new Factory.LoginFactory();
IDAL.LoginIDAL idal = fact.CreateUser();
DataTable Level = idal.SelectUser(userInfo);
return Level;
}
}
a
public class LoginFacade
{
public Boolean SelectUser(Entity.UserInfo user)
{
bool flag;
BLL.LoginBLL userBLL = new BLL.LoginBLL();
flag = userBLL.UserBLL(user);
return flag;
}
public DataTable SelectLevel(Entity .UserInfo Level1)
{
BLL.LoginBLL LevelBLL = new BLL.LoginBLL();
DataTable Level = LevelBLL.LevelBLL(Level1);
return Level;
}
}
a
public partial class FrmLogin : Form
{
public FrmLogin()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
if (txtUserID .Text==""||txtPassWord.Text =="")
{
MessageBox.Show("账号和密码不能为空!", "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
Facade.LoginFacade facade = new Facade.LoginFacade();
Entity.UserInfo user = new Entity.UserInfo();
user.UserID= Convert.ToString (txtUserID.Text);
user.PWD = txtPassWord.Text;
Boolean flag = false;
Facade.LoginFacade FLogin = new Facade.LoginFacade();
flag = FLogin.SelectUser(user);
if (flag !=false)
{
this.Hide();
Until.HelpUntil.UserID = this.txtUserID.Text.Trim();
this.DialogResult = System.Windows.Forms.DialogResult.OK;
DataTable Level = FLogin.SelectLevel(user);
if (Level.Rows[0][2].ToString().Trim()=="用户")
{
FrmMain frmstu = new FrmMain();
frmstu.Show();
}
else if (Level.Rows [0][2].ToString().Trim()=="操作员")
{
FrmOpert frmopert = new FrmOpert();
frmopert.Show();
}
else
{
FrmAdmin frmadmin = new FrmAdmin();
frmadmin.Show();
}
}
else
{
MessageBox.Show("用户名或密码不正确");
}
}
}