我想做个用户登录,让有权限的用户才可以访问某些窗体,否则拒绝访问。权限表:“
比如有张表 userlist 字段5个
userid: 1
uid: admin
pwd:admin
quxian1: 1
quxian2: 00无权访问,1可以访问。quxian1:form1的访问权、quxian2:form2的访问权。对应4个窗体 frame_main ,login,form1,form2
frame_main是程序入口窗体,form1、form2是要控制访问的窗体,login是登录窗体。我在frame_main中定义4个公共变量 public static string puid,ppwd,pqx1,pqx2
然后怎么做呢?login上一个按钮:b_login 登录。两个文本框:t_uid,t_pwd 接下来怎么做呢?是不是,b_login_click 时查找userlist表字段uid、pwd和t_uid,t_pwd 的内容。如果有将表中的 5个字段内容放入公共变量?
然后在FORM1、FORM2中应该怎么做?怎么判断允许访问否,不允许访问怎么办?
比如有张表 userlist 字段5个
userid: 1
uid: admin
pwd:admin
quxian1: 1
quxian2: 00无权访问,1可以访问。quxian1:form1的访问权、quxian2:form2的访问权。对应4个窗体 frame_main ,login,form1,form2
frame_main是程序入口窗体,form1、form2是要控制访问的窗体,login是登录窗体。我在frame_main中定义4个公共变量 public static string puid,ppwd,pqx1,pqx2
然后怎么做呢?login上一个按钮:b_login 登录。两个文本框:t_uid,t_pwd 接下来怎么做呢?是不是,b_login_click 时查找userlist表字段uid、pwd和t_uid,t_pwd 的内容。如果有将表中的 5个字段内容放入公共变量?
然后在FORM1、FORM2中应该怎么做?怎么判断允许访问否,不允许访问怎么办?
2.通过用户名和密码查询用户信息(返回用户实例)
3.frame_main中定义一个公共变量 private 用户实体类 _user;
4.在b_login_click中,通过2中的方法获取当前登陆用户的信息
_user = BLL.GetUser(puid, ppwd);
if(_user == null)
{
//登陆失败,用户名或密码错误!
return;
}
else if(_user.qunxian == 1)
{
form1 frm1 = new form1();
frm1.ShowDialog();
}
else
{
form2 frm2 = new form2();
frm2.ShowDialog();
}
uid: admin
pwd:admin
quxian1: 1
quxian2: 0
登录的第一个操作是判断用户名密码数据库中是否有并且是否正确,如果正确读取该用户的两个权限,根据两个权限字段判断跳转页面如果有将表中的 5个字段内容放入公共变量?
公共?public string uid;(有必要么?lz要干嘛?)
然后在FORM1、FORM2中应该怎么做?怎么判断允许访问否,不允许访问怎么办?
lz想怎么做就怎么做了?
允许访问才回跳转到FORM1、FORM2中,不允许就不让他跳转
可以用session或者cookic在登陆的时候如果有权限保存该用户信息,在FORM1、FORM2中判断是否保存在session或者cookic中如果有就是正常操作了!
string name = this.txtUser.Text.Trim();
string sql = string.Format(" u_pass from useradmin where u_name='{0}'", name);
string pass = config.Getname(sql);//查询取得密码
if (!this.txtPass.Text.Trim().Equals(pass))
{
//密码错误
}
else
{
Session["curAdmin"] = name;
Response.Redirect("main.aspx");//跳转页面
}
提车ToolStripMenuItem 这项不可见应该怎么写呢? public partial class main_park_fee : Form
{
public main_park_fee()
{
InitializeComponent();
}
private void 提车ToolStripMenuItem_Click(object sender, EventArgs e)
{
main_park_lee_panel.Controls.Clear();
park_fee_out park_lee_out = new park_fee_out();
park_lee_out.TopLevel = false;
main_park_lee_panel.Controls.Add(park_lee_out);
park_lee_out.Show();
} private void 设置数据库ToolStripMenuItem_Click(object sender, EventArgs e)
{
main_park_lee_panel.Controls.Clear();
msdb_setup oldset = new msdb_setup();
oldset.TopLevel = false;
main_park_lee_panel.Controls.Add(oldset);
oldset.Show();
}
}
还是操作字段吧,那也只需要返回quxian字段吧(quxian1: 1 quxian2: 0用一个字段表示不就够了?)
string quxian = BLL.GetUserRight(puid, ppwd); //返回权限字段并判断
if(quxian == null)
{
//登陆失败,用户名或密码错误!
return;
}
else if(qunxian == "1")
{
form1 frm1 = new form1();
frm1.ShowDialog();
}
else
{
form2 frm2 = new form2();
frm2.ShowDialog();
}