做个登陆窗体,验证身份信息后用static变量记录

解决方案 »

  1.   

    static void Main() 
    {
    Login.LoginForm loginForm = new Login.LoginForm();
    DialogResult LoginResult = loginForm.ShowDialog();
    if(LoginResult == DialogResult.Cancel)
    return; if(LoginResult == DialogResult.OK)
    {
    //主窗体
    MainForm form = new MainForm();
    Application.Run(form);
    }
    }
    //登陆窗体
    private void btnLogin_Click(object sender, System.EventArgs e)
    {
    if(CheckUser())
    {
    this.DialogResult = DialogResult.OK;
    this.Close();
    }
    else
    MessageBox.Show("户名或密码错误"); }
      

  2.   

    用static变量记录身份能行吗?
    static变量是常驻内存公共变量阿,要是两个人同时登陆怎么办?能不冲突?
    我是做web的,在web中用static肯定不行,我想window应该也一样吧
    web中有viewstate和session 但是window中具体用什么不清楚,应该也类似吧
      

  3.   

    写一个登录按钮事件,象这样:
    private void LButLog_Click(object sender, System.EventArgs e)
    {
    int grade = -1;//权限初始化
    string name = "";//管理员真实姓名初始化
    string id = "";//管理员ID初始化
    string Name = TBoxID.Text;
    string pwd = TBoxPwd.Text;
    string cmdstring = "SELECT * FROM operatorinfo WHERE (UserID = '"+Name+"' AND passwd = '"+pwd+"')";
    SqlConnection con = new SqlConnection(StaticVariables.sqlConnectString);
    SqlCommand cmd = new SqlCommand(cmdstring,con);
    SqlDataReader myRead;
    try
    {
    con.Open();
    myRead = cmd.ExecuteReader();
    while(myRead.Read())
    {
    id = myRead.GetString(1);  
    name = myRead.GetString(2);
                               grade = myRead.GetInt32(4);
    }
    myRead.Close();
    con.Close();
    switch(grade)
    {
    case 0://超级管理员
    case 1://高级管理员
    case 2://普通管理员
    //记录登录信息
    Session["Grade"] = grade;
    Session["Name"] = name;
    Session["ID"] = id;
    Response.Redirect("main.htm",false);
    break;
    default://未分配权限
    Response.Redirect("loginerror.aspx",false);
    break;
    }
    }
    catch
    {
    Response.Redirect("loginerror.aspx",false);
    }