WinForms登录验证问题!

maladola 2004-03-16 02:07:25
我在做一个登录窗体,怎么样才能判断我的用户名输入框的内容为数据库中允许的账号,并相应地判断她的密码是否正确?
关于这些账号在SQLServer2000中是否可以不建表?(我有建一个admin表)
...全文
49 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aallonlin 2004-03-17
  • 打赏
  • 举报
回复
你说的admin表里是不是存有所有的用户名跟密码呢?
有的话就可以不用建新表了。

没有的话:
1)新建一个表
2)直接放在一个文本里,加密后再存。
3)程序写死,这种方法不好。
4)写入XML
Aallonlin 2004-03-17
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2770/2770934.xml?temp=.3917353
Bob 2004-03-16
  • 打赏
  • 举报
回复
撰寫安全的 ADO.NET 命令字串
http://www.microsoft.com/taiwan/msdn/elearning/ADOdotNETSecurity.htm

让你得到意外的收获:)
turnmissile 2004-03-16
  • 打赏
  • 举报
回复
你总要找个地方放信息吧,放在数据库里面还少了安全性的问题。多好

建一个表简单方便,不要在这上面浪费时间
sleeping100 2004-03-16
  • 打赏
  • 举报
回复
是的,需要用一个表来存储用户信息,如用户账号,密码,
还有权限,

string strUserName=TxtUserName.Text.Trim();
string strUserPwd=TxtUserPwd.Text.Trim();
string strSql="Select * From UserInfo where UserName='"+strUserName+"' and UserPwd='"+strUserPwd+"'";
SqlConnection myConn=new SqlConnection("server=192.168.0.36;uid=sa;pwd=;database=FDINFO");
myConn.Open();
SqlCommand myCmd=new SqlCommand(strSql,myConn);
SqlDataReader myDr=myCmd.ExecuteReader();
if(myDr.Read())
{
this.Hide(); //登陆窗体
FormMain.Show(); //主窗体
}
Else
{
MessageBox.Show("用户不存在!");
}
myConn.Close();

//还有strUserName,strUserPwd记得要处理单引号
雪狼1234567 2004-03-16
  • 打赏
  • 举报
回复
下面是判断的函数
public string Login(string employeeNo,string Password,ref bool IsSuperUser)
{
sqlConn.Open();
string employeeId = "";
//1 校验sys_SuperUser是否超级用户
sqlCommand1.CommandText = "Select password from sys_superuser where username='"+employeeNo+"'";
SqlDataReader dReader = sqlCommand1.ExecuteReader();
while (dReader.Read())
{
if (Password == dReader["password"].ToString())
{
IsSuperUser = true;
employeeId = "admin";
}
}
dReader.Close();
//2 校验Hr_employee
sqlCommand1.CommandText = "Select employeeid,password from hr_employee where employeeno='"+employeeNo+"'";
dReader = sqlCommand1.ExecuteReader();
while (dReader.Read())
{
if (Password == dReader["password"].ToString())
{
employeeId = dReader["employeeId"].ToString();
}
}
dReader.Close();
sqlConn.Close();
return employeeId;
}
雪狼1234567 2004-03-16
  • 打赏
  • 举报
回复
最好建一下,这代码:
private void btn_login_Click(object sender, System.EventArgs e)
{
string wid = textBoxWorkID.Text;
string wpass = textBoxPassword.Text;
string uid;
bool IsSuperUser = false;
try
{
uid =Login(wid,wpass,ref IsSuperUser);
if (uid == "")
{
MessageBox.Show("工号或密码错!");
textBoxWorkID.Text = "";
textBoxPassword.Text = "";
return;
}
}
catch (Exception)
{
MessageBox.Show("服务连接错误");
return;
}

Frm_main m= new Frm_main(wid,uid,wpass,IsSuperUser);
Hos.Frm_main.hosMainForm = m;
m.Show();
this.Hide();
}
gabriel1 2004-03-16
  • 打赏
  • 举报
回复
不太明白你想问什么。
我来说说吧。如果有用户表,程序中,把用户的输入的帐号和密码取出来,拿到数据库里查询匹配,如果有,验证通过。反之,不通过。
如果没有表,可以通过其他的方式
1、程序写死。
2、写文本文件(可以编码)
3、windows身份验证。
maladola 2004-03-16
  • 打赏
  • 举报
回复
自己顶一下

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧