用数据库怎样验证账号和密码?

2024-05-04 08:03

1. 用数据库怎样验证账号和密码?

1,先建立一个数据库UserTest。 
2,在里面建立一个表叫UsersTable,设计表,建立三个列:u_id, u_name, u_pwd。 
3,u_id是int数据类型,自增1;u_name是nvarchar类型,长度12;u_pwd是varchar类型,长度12,然后保存该表。 
4,打开表,在第一行u_name输入“abc”,u_pwd输入“abc”。关闭表。 
5,打开VS,新建一个Web项目。双击默认的default.aspx页面,然后将 ... 替换成下面的代码: 


HTML code 
 
 
 
 
 
yunleizhilian 的登录示范 
 
 
用户名:密码: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 




6,按F7,进入代码视图,在Page_Load()里写下面的代码: 


C# code 
protected void Page_Load(object sender, EventArgs e) 
{ 
//确保页面是第一次被访问 
if (!Page.IsPostBack) 
{ 
CheckPageStatus(); 
} 
} 

//通过判断Session["UserName"]是否为空检查页面是否已登录(登录成功时会为Session["UserName"]注入值,就不空了。。否则就认为没有登录)。 
private void CheckPageStatus() 
{ 
if (Session["UserName"] != null) 
{ 
pnlLogin.Visible = false; 
pnlWelcome.Visible = true; 
lblWelcome.Text = "欢迎登录," + Session["UserName"].ToString() + " 同志"; 
} 
else 
{ 
pnlWelcome.Visible = false; 
pnlLogin.Visible = true; 
} 

//这个用来接收登录或退出后的信息。个人习惯,你也可以不这么做。 
if (Session["Message"] != null) 
{ 
lblMessage.Text = Session["Message"].ToString(); 
Session.Remove("Message"); 
} 
else 
lblMessage.Text = ""; 
} 





7,先告一段落,按F5运行下,看看效果,你会发现当没有登录时,“退出”那部分没有显示。真神奇啊。 
8,然后关闭这个IE页面,按VS左下角的“设计”,切换到设计视图。 
9,双击设计视图的“登录”按钮,为它编写登录代码如下: 


C# code 
protected void btnLogin_Click(object sender, EventArgs e) 
{ 
//下面的登录方法只是我的习惯而已,我常用DataTable做所有的事情。建议你不要依赖它……否则会被人笑话的……登录的好方法有很多,参考下就好了。 
string strConnection = "SERVER=(local);DATABASE=UserTest;UID=sa;PWD=";//PWD=后面写上你的SQL SERVER 的 sa密码。 
System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection(strConnection); 
//SQL 语句会吧?不会没办法,照抄吧。 
string strSql = "SELECT * FROM UsersTable WHERE u_name='" + txbUserName.Text + "' AND u_pwd='" + txbUserPassword.Text + "'"; 
//SqlDataAdapter这东西有什么用,建议你去查MSDN。 
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(strSql, cn); 
System.Data.DataTable dt = new DataTable(); 
da.Fill(dt); 

if (dt.Rows.Count > 0) 
{ 
Session["UserName"] = dt.Rows[0]["u_name"].ToString(); 
Session["Message"] = "登录成功!"; 
Response.Redirect("default.aspx"); 
} 
else 
{ 
Session["Message"] = "登录失败。请重新登录。"; 
Response.Redirect("default.aspx"); 
} 
} 




10,再按F5测试下,在用户名和密码内输入123,按下“登录”按钮,会提示登录失败。如果都输入abc,就会提示登录成功。因为数据库内只有abc这个用户。 
11,关闭IE页面,最后我们做退出。 
12,回到设计视图,双击“退出”按钮,为它编写下面的代码: 


C# code 
protected void btnQuit_Click(object sender, EventArgs e) 
{ 
if (Session["UserName"] != null) 
{ 
Session.Remove("UserName"); 
Session["Message"] = "退出成功,欢迎您再来啊"; 
Response.Redirect("default.aspx"); 
} 
} 




13,按F5运行,登录成功后,按“退出”按钮,系统会提示已经退出。 
14,为了验证用户是否已登录,你需要在所有需要登录的页面的Page_Load()内添加: 


C# code 

if(Session["UserName"]!=null) 
//用户可以访问。 
else 
//用户不能访问,扔回到登录页面:Response.Redirect("login.aspx");

用数据库怎样验证账号和密码?

2. 数据库问题:登录时,用户名和密码与数据库中的记录进行校验,如何实现?

先根据用户输入的用户名查找数据中是否有这条数据,如果没有,提示该用户不存在,如果有就直接将这条数据取出,将用户输入的密码跟取出的数据进行比较,若相同就登陆该软件,不相同就提示密码错误。。。。

3. 如何在VC++用ADO连接数据库时需要验证账号密码(通过数据库验证)

那要事先在数据库里面存好账号和密码

然后进行验证,而且最好要对特殊格式的字符进行屏蔽,不然很容易就破解了

我以前写过一个MFC+SQL2005的程序,并做好了数据库移植

http://et214721856.download.c s d n.net/ 避免百度TM对此连  接屏蔽,请把后面的  C  S  D N的空格去掉

如何在VC++用ADO连接数据库时需要验证账号密码(通过数据库验证)

4. 怎么检查数据库用户的密码是否为空

假使你的表叫 user, 密码栏位叫 password
select * from user where password is null or isnull(password, '') = ''

5. SQL2000数据库与C#代码进行链接 我做了一个登陆的窗体 登陆时验证数据库中的用户名和密码一致才能登陆

我一般做法是查询数据库中的数据.匹配用户名和密码.看看能不能select出数据来
如果select之后存在行.表示用户名密码存在.那么就通过验证了....

所以sql查询语句就变成了
select * from SyUser where username=@username and pwd=@pwd
@username @pwd都是参数.丢进去就OK了.这样可以防止一些注入....方便点.

如果按照你现在写的方法.把所有用户数据查出来一个一个匹配.循环到你郁闷.效率是个问题

SQL2000数据库与C#代码进行链接 我做了一个登陆的窗体 登陆时验证数据库中的用户名和密码一致才能登陆

6. 怎样把密码加密存入数据库?而且在数据库中显示的是其他代码。用在密码验证上

把密码转换成MD5再存入数据库

7. java连数据库是的对等代码怎么写啊?例如:密码怎样与数据库中的密码验证正确还是错误。

输入的密码与数据库中的密码一个个比较啊.不就行了么.
常见连数据库的代码;

FirstJDBC
import java.sql.*;
public class FirstJDBC
{
  public static void main(String args[])
  {
  try{
    
              //1. 加载驱动   
      //Class.forName("org.gjt.mm.mysql.Driver");   
    Class.forName("oracle.jdbc.driver.OracleDriver");
      //2. 建立连接
//Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","1234");     
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.206:7777:tarena","wsd0701","wsd0701");   
    //3. 创建Statement   
  Statement stmt = con.createStatement();
    //4. 执行SQL   
  String sql = "select id,name from t_user";
  ResultSet rs = stmt.executeQuery(sql);
    //5. 处理结果集   
  while( rs.next() )
    {
    System.out.println("id: " + rs.getInt(1)+"\tname: " + rs.getString(2));   
    }
      //6. 释放资源
    rs.close();
    stmt.close();
    con.close();
}catch(Exception e){e.printStackTrace(); }
    
  }   
}

java连数据库是的对等代码怎么写啊?例如:密码怎样与数据库中的密码验证正确还是错误。

8. php连接mysql数据库,账号密码的验证问题。

这个就是比较基础的事情啦

你的代码中:if(mysql_affected_rows($link)!=0) 
意思是某个查询所影响的行数,如果用户名和密码都不对,将返回0行,当然就不能通过验证啦
这样是一次性验证了用户名和密码.
但是你的sql语句有问题
应该这样 : $sql2="select * from user where name = '$name' and password = '$pass'";

你要获取查询的结果: 一般都用 mysql_fetch_array();
按照你上面例子用法
$result = mysql_query (select * from user where name = '$name')
$row = mysql_fetch_array($result);
如果你的sql语句没错话,用户名又存在
那么 就返回了一个数组 $row 
你用echo $row[0] 或者 $row['name'] 试试就可以获得内容
你获得了用户名之后,就可以继续查询秘密是否正确啦..
原来一样
还不懂的话,来我博客看看 我也在学习php 大家交流一下
http://blog.hzw513.com
最新文章
热门文章
推荐阅读