验证登陆取用户名SESSION,并且在index.aspx页显示用户名以及权限(登陆不需要将工程代码与用户名一起验证)。下拉列表字段(gcdm),存储在gcdm表内,用户名、密码、权限存储在userinfo表内
以下是部分代码
Session["UserName"]= null;
Session["oskey"]= null;
OleDbConnection cn = new OleDbConnection(dataclass.Dbconn.DBConn_Data);
cn.Open();
//userinfo表存储用户名、密码、权限信息
//gcdm表存储工程代码(gcdm)
OleDbCommand cmd = new OleDbCommand("select userinfo.UserName,userinfo.oskey,gcdm.name,gcdm.gcdm from userinfo CROSS JOIN gcdm where (UserName='"+txtName.Text+"' and Password='"+txtPwd.Text+"')" , cn);
OleDbDataReader dr=cmd.ExecuteReader();
if( dr.Read())
{
Session["UserName"]= dr["UserName"].ToString();用户名
Session["oskey"]=dr["oskey"].ToString();权限
Session["gcdm"]=dr["gcdm"].ToString();
Response.Redirect("index.aspx");
}
else
{
this.h_error.Value = "错误的用户名或者密码!";
}
cn.Close();没有错误提示,只不过gcdm字段显示的不是当前用户名对应的工程代码,是数据库内的第一条工程代码记录
是不是我的数据库有问题?
userinfo表【UserName】【Password】【oskey(权限)】
gcdm表【name(与UserName是一个意思】【gcdm】。两个表是一对多的关系,一个人可能有几个工程代码。
以下是部分代码
Session["UserName"]= null;
Session["oskey"]= null;
OleDbConnection cn = new OleDbConnection(dataclass.Dbconn.DBConn_Data);
cn.Open();
//userinfo表存储用户名、密码、权限信息
//gcdm表存储工程代码(gcdm)
OleDbCommand cmd = new OleDbCommand("select userinfo.UserName,userinfo.oskey,gcdm.name,gcdm.gcdm from userinfo CROSS JOIN gcdm where (UserName='"+txtName.Text+"' and Password='"+txtPwd.Text+"')" , cn);
OleDbDataReader dr=cmd.ExecuteReader();
if( dr.Read())
{
Session["UserName"]= dr["UserName"].ToString();用户名
Session["oskey"]=dr["oskey"].ToString();权限
Session["gcdm"]=dr["gcdm"].ToString();
Response.Redirect("index.aspx");
}
else
{
this.h_error.Value = "错误的用户名或者密码!";
}
cn.Close();没有错误提示,只不过gcdm字段显示的不是当前用户名对应的工程代码,是数据库内的第一条工程代码记录
是不是我的数据库有问题?
userinfo表【UserName】【Password】【oskey(权限)】
gcdm表【name(与UserName是一个意思】【gcdm】。两个表是一对多的关系,一个人可能有几个工程代码。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货