ASP.NET C# MD5 密码登录页
本文关键字:登录 密码 MD5 NET ASP | 更新日期: 2023-09-27 18:25:49
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
object User = Session["$UserName"];
if (User != null)
{
pnlLogin.Visible = false;
pnlWelcome.Visible = true;
lblUserName.Text = User.ToString();
}
else
{
pnlWelcome.Visible = false;
pnlLogin.Visible = true;
}
`protected void btnlogin_Click(object sender, EventArgs e)
{
SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings[0].ConnectionString);
string sorgu = "SELECT * FROM TB_User WHERE StrUserID = @UserName AND password = @Password";
string hashedPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassword.Text, "MD5");
SqlCommand cmd = new SqlCommand(sorgu, cnn);
cmd.Parameters.AddWithValue("@UserName", txtUserName);
cmd.Parameters.AddWithValue("@Password", hashedPassword);
cnn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
Session.Add("User", dr["StrUserID"].ToString());
Response.Redirect(Request.RawUrl);
}
else
{
lblresult.Text = "Login Failed";
}
cnn.Close();`
}
}
这里 ASP 和 HTML 代码
<div class="login">
<asp:Panel ID="pnlLogin" runat="server">
<div class="loghead">
LOGIN
</div>
<div class="logfoot">
<span>ID</span>
<br />
<asp:TextBox ID="txtUserName" CssClass="TextBox" runat="server" Width="151px" Height="21px" />
<br />
<span>Password</span>
<br />
<asp:TextBox ID="txtPassword" CssClass="TextBox" TextMode="Password" runat="server" Height="21px" Width="151px" />
<br />
<asp:Button ID="btnregister" CssClass="btnregister" Text="REGISTER" runat="server" OnClick="btnregpag_Click" />
<asp:Button ID="btnlogin" CssClass="btnlogin" Text="LOGIN" runat="server" OnClick="btnlogin_Click" />
<asp:Label ID="lblresult" Text="" runat="server" />
</div>
</asp:Panel>
<asp:Panel ID="pnlWelcome" runat="server"> Welcome ,<asp:Label ID="lblUserName" Text="" runat="server" /> </asp:Panel>
</div>
这是我的登录代码,数据库密码使用 md5 加密。当我尝试登录时,我在Visual Studio 2015上出现错误那是错误:错误图像在这里这是怎么回事?和SQL表:SQL表在这里
我发现出了什么问题txtusername after.text
cmd.Parameters.AddWithValue("@UserName", txtUserName.text(;
现在登录事件工作
首先,
正如我最新评论中提到的,您的代码中存在代码语法错误。
此外,对于md5
密码存储,您需要知道类似
任何哈希函数的输出都是字节的集合,而不是文本的集合。因此,当您输入文本作为测试时,您可能正在输入该字节数组的文本转换。简单地在 SQL 中将其转换为二进制(16( 是不正确的,您需要进行适当的转换,这是您在 SQL 中无法做到的。这也解释了为什么更改列的数据类型也不起作用。取自这里
我正在介绍一小段代码,它可能会帮助您完成当前的任务。
给你:-
单击按钮时
//get the username
string UserName = txtUserName.Text;
//create the MD5CryptoServiceProvider object we will use to encrypt the password
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
//create an array of bytes we will use to store the encrypted password
Byte[] hashedBytes;
//Create a UTF8Encoding object we will use to convert our password string to a byte array
UTF8Encoding encoder = new UTF8Encoding();
//encrypt the password and store it in the hashedBytes byte array
hashedBytes = md5Hasher.ComputeHash(encoder.GetBytes(txtPassword.Text));
不要忘记为hashing
添加相关的命名空间。看看下面
using System.Security.Cryptography
有关完整参考,您可以查看使用 MD5 加密密码
获取一个新的 aspx 页面并逐步进入我如上所述为您提供的文档。
这肯定会帮助您实现您的要求。
希望有帮助。