写一个全局CLASS,里面存入用户得信息(登录时),如ID、LOGINTIME、NAME等。
然后引用就行了。
然后引用就行了。
解决方案 »
- 【提问】遍历窗体控件设置样式只生效一个
- Window CE 中的cab安装错误
- 这让我情何以堪啊~~~~
- .net中如何修改已编译的程序集
- c#如何实现选项卡式的窗口。
- 请问如何用C#写一个程序,让其自动检测一个IE窗口,当其打开完毕后,可以自动填写某些txtbox项目和Radiobutton?
- C# Threading.Timer的疑惑
- 急...求SQLDMO.dll在com应用中怎样设置湖那员数据库为强制还原...
- 帮我看一下这道题怎么做?为什么这么做会出现错误?
- 大家有知道亿阳信通的吗?偶要去,但不知道怎么样?请介绍。来者有分。
- 为什么编译器不能排除这样的逻辑错误?
- 十分求教:用户注册之前进行用户名测试,总是不成功。
select cout(*) from table where pass = 'pass' and name ='name'
我认为安全的方法应该是把密码检索出来,通过判断用户输入的密码和数据库中的是否一致来判断登录的合法性,而不是判断是否有相同的记录来进行。
我觉的应该判断“一致性”。
1.你在界面接收用户输入的用户名和密码,然后和数据库中的数据进行比较
2.如果比较通过了,就把这个用户的信息显示在DataGrid中(难道这个DataGrid只做这一件事?)如果是上面的意思的话你可以这样:
1.根据用户的名称以及其它信息(当然不包括密码信息)取得用户的密码
2.如果登录成功就把这条信息显示在DataGrid中,下面我简单说一下代码,可行的代码有很多种的,具体ADO.net的使用你还是看书比较好 方法是老一套:
//判断用户的登录是否有效,如果有效就把登录信息保存在Session中
string strName,strPass;
strName = txtName.Text.Trim();
strPass = txtPass.Text.Trim();//取得连接参数
string strConnection = "你自己的连接参数";
//连接对象
OleDbConnection objConnection = new OleDbConnection(strConnection);
//SQL语法
string strSQL= "select dwh,user_id,gwbh,gwmc,user_level,password from users where user_name = '" + strName + "'";
//打开连接执行这个SQL语法
OleDbCommand objCommand = new OleDbCommand(strSQL,objConnection);
OleDbDataReader objDataReader = null;
objConnection.Open();
objDataReader = objCommand.ExecuteReader(); if(objDataReader.Read())
{
string strComPass = (string)objDataReader["password"]; if(strPass == strComPass)
{
//成功允许登录
//在DataGrid中显示这条记录
DataGrid1.DataSource = objDataReader;
DataGrid1.DataBind();
}
}
我还是不太明白你的代码。我把我的代码写在下面:请指点。private void LogButton_Click(object sender, System.EventArgs e)
{
string userid,pwd;
userid=Userid.Text.Trim();
pwd=Pwd.Text.Trim();
string mySel="SELECT count(*) as iCount from Employee where LoginName=@myID";
SqlCommand myCmd1=new SqlCommand(mySel,myConnection);
myCmd1.Parameters.Add(new SqlParameter("@myID",SqlDbType.VarChar,20));
myCmd1.Parameters["@myID"].Value=userid;
myCmd1.Connection.Open();
SqlDataReader Dr1;
Dr1=myCmd1.ExecuteReader();
Dr1.Read();
string Count=Dr1["iCount"].ToString();
Dr1.Close();
myCmd1.Connection.Close();
if(Count!="0")
{
pwd=Pwd.Text.Trim();
string mySelect="SELECT Password,LoginName from Employee where LoginName=@myName";
SqlCommand myCmd=new SqlCommand(mySelect,myConnection);
myCmd.Parameters.Add(new SqlParameter("@myName",SqlDbType.VarChar,20));
myCmd.Parameters["@myName"].Value=userid;
myCmd.Connection.Open();
SqlDataReader Dr;
Dr=myCmd.ExecuteReader();
Dr.Read();
//DrPwd=Dr["Password"].ToString();
string mystr,mystrName;
mystr=Dr["password"].ToString();
mystrName=Dr["LoginName"].ToString(); //Response.Write("!"+pwd+"!"+mystr);
//Response.Write((mystr==pwd));
if(mystr.Equals(pwd))
{
Session["logid"]=userid;//新建一个Session
Session["logName"]=mystrName;
Response.Redirect("./WebForm2.aspx");
//Response.Write("!!!!!!!!");
}
else
{
Msg.Text="登录密码错.";
}
Dr.Close();
}
else
Msg.Text="没有这个用户.";
}