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表在这里

ASP.NET C# MD5 密码登录页

我发现出了什么问题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 页面并逐步进入我如上所述为您提供的文档。

这肯定会帮助您实现您的要求。

希望有帮助。