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

用数据库怎样验证账号和密码?,第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页面,然后将 <body>... </body>替换成下面的代码:

HTML code

<!-- 替换-->

<body style="margin: 0px">

<form id="form1" runat="server">

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%height: 50px">

<tr>

<td style="vertical-align: middlewidth: 50%text-align: centerfont-weight: boldfont-size: 25pxcolor: #003366font-family: Arial">yunleizhilian 的登录示范</td>

<td style="vertical-align: middletext-align: left">

<asp:Panel ID="pnlLogin" runat="server" Height="30px" Width="100%">

用户名:<asp:TextBox ID="txbUserName" runat="server"></asp:TextBox>密码

<!-- 对于密码TextBox,应把TextMode属性设置为Password,这样输入的值会以****形式出现,保护密码在输入时不被别人看到 -->

<asp:TextBox ID="txbUserPassword" runat="server" TextMode="Password"></asp:TextBox>

<asp:Button ID="btnLogin" runat="server" Text="登录" OnClick="btnLogin_Click" /></asp:Panel>

<asp:Panel ID="pnlWelcome" runat="server" Height="30px" Width="100%">

<asp:Label ID="lblWelcome" runat="server"></asp:Label>

<asp:Button ID="btnQuit" runat="server" CausesValidation="False" Text="退出" Width="146px" OnClick="btnQuit_Click" /></asp:Panel>

</td>

</tr>

</table>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%height: 100px">

<tr>

<td style="vertical-align: middletext-align: center">

<!-- 这个用来显示登录是否成功的信息 -->

<asp:Label ID="lblMessage" runat="server" ForeColor="#C00000"></asp:Label></td>

</tr>

</table>

</form>

</body>

<!-- 替换结束 -->

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=UserTestUID=saPWD="//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")

string constr = "server=.database=Graduationuid=123pwd=123"//连接字符串里包含了数据库信息

            SqlConnection conn = new SqlConnection(constr)//创建数据库连接

            conn.Open()//打开连接

            //SqlDataAdapter sda = new SqlDataAdapter()//SqlDataAdapter是数据适配器,是数据库和调用者之间的桥梁

            SqlCommand cmd = new SqlCommand()  //SqlCommand表示对数据库要执行的 *** 作命令。

            cmd.CommandText = "select*from Login"//cmd要执行的sql *** 作语句

            cmd.Connection = conn//cmd对应的连接

            SqlDataReader reader = cmd.ExecuteReader() 

            while(reader.Read())

            {

                string username=reader["Name"].ToString()

                string password=reader["password"].ToString()

                //Trim()表示把字符串前后的空格都去除。不然有空格会干扰判断。

            if (this.textBox1.Text .Trim()==username.Trim() && password.Trim () ==this.textBox2.Text.Trim() )

            {

                Form1 f = new Form1()

                f.Show()   //d出Form1这个窗体             

            }

            else

            {              

                MessageBox.Show("用户名或密码错误,请重新输入")

                this.textBox2.Text = ""

                this.textBox1.Text = ""

            }

#include <string.h>

char user[]="输入的帐号", pwd[]="输入的密码"

if (strcmp("真实帐号", user) == 0 &&strcmp("对应密码", pwd) == 0) {

printf("验证成功!")

} else {

printf("帐号或密码错误!")

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6775304.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存