asp.net登录不了
在adminsys文件夹里面,有个Default.aspx文件,是登录入口,输入用户名跟密码老是提示“用户名密码错误,登录失败”不知道什么问题,查看了数据库里面Admin表的用户名和密码,发现我输入的用户名跟密码都是没错的,请高手帮忙啊!(1)/adminsys/Default.aspx代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Adminsys_Default" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>后台登录</title>
<link href="../Adminsys/ML_style.css" rel="stylesheet" type="text/css" />
</head>
<body style="background-image: none">
<form id="form1" runat="server">
<div style="text-align: center; margin-top: 100px;">
<table style="width: 424px; height: 293px;" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 429px; height: 28px; background: url(images/we_1.gif); color: White;"
valign="bottom" align="left">
<strong> <asp:Label ID="lbl_Title" runat="server" Text=""></asp:Label>
</strong>
</td>
</tr>
<tr>
<td style="height: 126px; width: 429px;" align="center">
<asp:Image ID="adImg" runat="server" ImageUrl="images/we_2.gif" /></td>
</tr>
<tr>
<td style="height: 119; background: url(images/we_3.gif); width: 429px" align="center">
<table width="100%" border="0" cellpadding="3" cellspacing="0">
<tr>
<td valign="middle" style="width: 128px; height: 24px;" align="right">
<b>用户名:</b></td>
<td valign="middle" align="left">
<asp:TextBox ID="txt_username" runat="server" Style="border-right: #7b9fbe 1px solid;
border-top: #7b9fbe 1px solid; font-size: 12px; background: #f9f9f9; border-left: #7b9fbe 1px solid;
width: 120px; border-bottom: #7b9fbe 1px solid; height: 18px"></asp:TextBox>
<asp:RequiredFieldValidator ID="valrUserName" runat="server" ErrorMessage="请输入管理员用户名!"
ControlToValidate="txt_username"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td valign="middle" align="right" style="height: 24px; width: 128px;">
<b>密 码:</b></td>
<td valign="middle" align="left">
<asp:TextBox ID="txt_pwd" runat="server" Style="border-right: #7b9fbe 1px solid;
border-top: #7b9fbe 1px solid; font-size: 12px; background: #f9f9f9; border-left: #7b9fbe 1px solid;
width: 120px; border-bottom: #7b9fbe 1px solid; height: 18px" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="valrPWD" runat="server" ControlToValidate="txt_pwd"
ErrorMessage="请输入管理员密码!"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td valign="middle" align="right" style="height: 24px; width: 128px;">
<b>验证码:</b></td>
<td valign="middle" align="left">
<asp:TextBox ID="txt_ValidateNum" runat="server" Style="border-right: #7b9fbe 1px solid;
border-top: #7b9fbe 1px solid; font-size: 12px; background: #f9f9f9; border-left: #7b9fbe 1px solid;
width: 60px; border-bottom: #7b9fbe 1px solid; height: 18px"></asp:TextBox>
<asp:Image ID="ValidateNumber" runat="server" ImageUrl="~/Adminsys/chkcode/Image.aspx"
ImageAlign="AbsMiddle" />
<asp:RequiredFieldValidator ID="valrCode" runat="server" ControlToValidate="txt_ValidateNum"
ErrorMessage="请输入验证码!"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td valign="middle" colspan="2" align="center" style="height: 30px">
<asp:Button ID="btnSub" runat="server" Text=" 登 录 " OnClick="btnSub_Click" />
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="width: 429px" align="center">
<asp:Image ID="Image1" runat="server" ImageUrl="~/Adminsys/images/we_5.gif" /></td>
</tr>
</table>
</div>
</form>
</body>
</html>
(2)/adminsys/Default.aspx.cs文件(包含“登录”控件)代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Adminsys_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lbl_Title.Text = Page.Title = Convert.ToString(Application["siteName"]) + "后台管理系统";
}
}
protected void btnSub_Click(object sender, EventArgs e)
{
string uname = txt_username.Text.ToString();
string pwd = txt_pwd.Text.ToString();
string validateNum = txt_ValidateNum.Text.ToString();
if (validateNum == (string)Session["CheckCode"])
{
string[] userInfo = admin.login(uname, pwd);
if (userInfo[2].Equals(pwd))
{
Session["userID"] = userInfo[0];
Session["userName"] = userInfo[1];
Session["pwd"] = userInfo[2];
Response.Redirect("admin_main.aspx");
}
else
{
Response.Write(jaylee.Msg("", "用户名密码错误,登录失败!"));
}
}
else
{
Response.Write(jaylee.Msg("", "验证码输入错误!"));
}
}
}
--------------------编程问答-------------------- string[] userInfo = admin.login(uname, pwd);
admin.login返回的是什么?
if (userInfo[2].Equals(pwd))
这个判断是正确的吗?
--------------------编程问答-------------------- 一楼字数限制,写到这里来。
(3)/web.config文件代码如下:
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<appSettings>
<add key="dbPath" value="~/App_Data/dongtundu.mdb"/>
<add key="imagesfolder" value="~/upLoadFile/"/>
<add key="yuanimg" value="~/upLoadFile/"/>
</appSettings>
<connectionStrings/>
<system.web>
<httpHandlers/>
<!--
设置文件上传最大值,预设200M
-->
<httpRuntime maxRequestLength="204800"/>
<!--
设置sessionState mode="StateServer" 将session保IIS进程外的进程中
需要开启ASP.NET 状态服务InProc
-->
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424"></sessionState>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true">
<assemblies>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows"/>
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
(4)/App_code/admin.cs文件代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
/// <summary>
/// admin 的摘要说明
/// </summary>
public class admin
{
public admin()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static string[] login(string uname, string pwd)
{
string[] userInfo = new string[] { "userID", "userName","pwd" };
OleDbDataReader dr=(OleDbDataReader)OleDbHelper.ExecuteReader(CommandType.Text, "select * from Admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString() + "'");
if(dr.HasRows)
{
dr.Read();
if (dr["password"].ToString() == jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString())
{
userInfo[0] = dr["id"].ToString();
userInfo[1] = dr["userName"].ToString();
userInfo[2] = pwd;
}
}
dr.Close();
return userInfo;
}
public static bool chkoldpwd(string uname, string pwd)
{
if (Convert.ToInt32(OleDbHelper.ExecuteScalar(CommandType.Text, "select count(0) from admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString() + "'")) > 0)
{
return true;
}
else
{
return false;
}
}
public static string chklogin(string uname)
{
string strMsg="";
if (uname == null || uname.Length <= 0)
{
strMsg = jaylee.Msg("Default.aspx", "登录超时,请重新登录!","parent");
}
return strMsg;
}
public static string chkflag(int flagID)
{
string flagBox = Convert.ToString(HttpContext.Current.Session["flag"]);
flagBox = "," + flagBox + ",";
string strMsg = "";
int flag = flagBox.IndexOf("," + flagID.ToString() + ",");
if (flag <= 0)
{
strMsg = jaylee.Msg("", "你没有权限访问此页面!");
}
return strMsg;
}
public static bool chkflagb(int flagID)
{
string flagBox = Convert.ToString(HttpContext.Current.Session["flag"]);
flagBox = "," + flagBox + ",";
int flag = flagBox.IndexOf("," + flagID.ToString() + ",");
if (flag <= 0)
{
return false;
}
else
{
return true;
}
}
}
--------------------编程问答-------------------- 接上面
(5)/App_Code/OleDbHelper.cs代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.OleDb;
using System.Collections;
/// <summary>
/// Summary description for OleDbHelper
/// </summary>
public class OleDbHelper
{
public static string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"].ToString());
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
#region ExecuteNonQuery
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val;
try
{
val = cmd.ExecuteNonQuery();
}
finally
{
cmd.Parameters.Clear();
conn.Close();
}
return val;
}
}
public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection conn = new OleDbConnection(strConnection))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val;
try
{
val = cmd.ExecuteNonQuery();
}
finally
{
cmd.Parameters.Clear();
conn.Close();
}
return val;
}
}
public static int ExecuteNonQuery(string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection conn = new OleDbConnection(strConnection))
{
PrepareCommand(cmd, conn, null, CommandType.StoredProcedure, cmdText, commandParameters);
int val;
try
{
val = cmd.ExecuteNonQuery();
}
finally
{
cmd.Parameters.Clear();
conn.Close();
}
return val;
}
}
public static int ExecuteNonQuery(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int val;
try
{
val = cmd.ExecuteNonQuery();
}
finally
{
cmd.Parameters.Clear();
connection.Close();
}
return val;
}
#endregion
#region ExecuteReader
public static OleDbDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
OleDbConnection conn = new OleDbConnection(connectionString);
OleDbDataReader rdr;
try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
finally
{
cmd.Parameters.Clear();
}
return rdr;
}
public static OleDbDataReader ExecuteReader(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
OleDbConnection conn = new OleDbConnection(strConnection);
OleDbDataReader rdr;
try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
finally
{
cmd.Parameters.Clear();
}
return rdr;
}
public static OleDbDataReader ExecuteReader(string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
OleDbConnection conn = new OleDbConnection(strConnection);
OleDbDataReader rdr;
try
{
PrepareCommand(cmd, conn, null, CommandType.StoredProcedure, cmdText, commandParameters);
rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
finally
{
cmd.Parameters.Clear();
//conn.Close();
}
return rdr;
}
#endregion
#region ExecuteScalar
public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val ;
try
{
val = cmd.ExecuteScalar();
}
finally
{
cmd.Parameters.Clear();
connection.Close();
}
return val;
}
}
public static object ExecuteScalar(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection connection = new OleDbConnection(strConnection))
{
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val;
try
{
val = cmd.ExecuteScalar();
}
finally
{
cmd.Parameters.Clear();
connection.Close();
}
return val;
}
}
--------------------编程问答-------------------- 接上面
public static object ExecuteScalar(string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection connection = new OleDbConnection(strConnection))
{
PrepareCommand(cmd, connection, null, CommandType.StoredProcedure, cmdText, commandParameters);
object val;
try
{
val = cmd.ExecuteScalar();
}
finally
{
cmd.Parameters.Clear();
connection.Close();
}
return val;
}
}
public static object ExecuteScalar(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
{
OleDbCommand cmd = new OleDbCommand();
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val;
try
{
val = cmd.ExecuteScalar();
}
finally
{
cmd.Parameters.Clear();
connection.Close();
}
return val;
}
#endregion
#region ExecuteDataSet
public static DataSet ExecuteDataSet(string connectionString, CommandType cmdType, string cmdText)
{
OleDbConnection OleDbDataConn = new OleDbConnection(connectionString);
OleDbCommand OleDbComm = new OleDbCommand(cmdText, OleDbDataConn);
OleDbComm.CommandType = cmdType;
OleDbDataAdapter OleDbDA = new OleDbDataAdapter(OleDbComm);
DataSet DS = new DataSet();
OleDbDA.Fill(DS);
OleDbDataConn.Close();
return DS;
}
public static DataSet ExecuteDataSet(CommandType cmdType, string cmdText)
{
OleDbConnection OleDbDataConn = new OleDbConnection(strConnection);
OleDbCommand OleDbComm = new OleDbCommand(cmdText, OleDbDataConn);
OleDbComm.CommandType = cmdType;
OleDbDataAdapter OleDbDA = new OleDbDataAdapter(OleDbComm);
DataSet DS = new DataSet();
OleDbDA.Fill(DS);
OleDbDataConn.Close();
return DS;
}
public static OleDbDataAdapter ExecuteDataAdapter(CommandType cmdType, string cmdText)
{
OleDbConnection OleDbDataConn = new OleDbConnection(strConnection);
OleDbCommand OleDbComm = new OleDbCommand(cmdText, OleDbDataConn);
OleDbComm.CommandType = cmdType;
OleDbDataAdapter OleDbDA = new OleDbDataAdapter(OleDbComm);
//OleDbDA.Fill(ds,tbl);
OleDbDataConn.Close();
return OleDbDA;
}
public static DataSet ExecuteDataSet(string cmdText)
{
OleDbConnection OleDbDataConn = new OleDbConnection(strConnection);
OleDbCommand OleDbComm = new OleDbCommand(cmdText, OleDbDataConn);
OleDbComm.CommandType = CommandType.StoredProcedure;
OleDbDataAdapter OleDbDA = new OleDbDataAdapter(OleDbComm);
DataSet DS = new DataSet();
OleDbDA.Fill(DS);
OleDbDataConn.Close();
return DS;
}
public static DataSet ExecuteDataSet(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] OleDbparams)
{
OleDbConnection OleDbDataConn = new OleDbConnection(connectionString);
OleDbCommand OleDbComm = AddOleDbParas(OleDbparams, cmdText, cmdType, OleDbDataConn);
OleDbDataAdapter OleDbDA = new OleDbDataAdapter(OleDbComm);
DataSet DS = new DataSet();
OleDbDA.Fill(DS);
OleDbDataConn.Close();
return DS;
}
public static DataSet ExecuteDataSet(CommandType cmdType, string cmdText, params OleDbParameter[] OleDbparams)
{
OleDbConnection OleDbDataConn = new OleDbConnection(strConnection);
OleDbCommand OleDbComm = AddOleDbParas(OleDbparams, cmdText, cmdType, OleDbDataConn);
OleDbDataAdapter OleDbDA = new OleDbDataAdapter(OleDbComm);
DataSet DS = new DataSet();
OleDbDA.Fill(DS);
OleDbDataConn.Close();
return DS;
}
public static DataSet ExecuteDataSet(string cmdText, params OleDbParameter[] OleDbparams)
{
OleDbConnection OleDbDataConn = new OleDbConnection(strConnection);
OleDbCommand OleDbComm = AddOleDbParas(OleDbparams, cmdText, CommandType.StoredProcedure, OleDbDataConn);
OleDbDataAdapter OleDbDA = new OleDbDataAdapter(OleDbComm);
DataSet DS = new DataSet();
OleDbDA.Fill(DS);
OleDbDataConn.Close();
return DS;
}
#endregion
#region CacheParameters
public static void CacheParameters(string cacheKey, params OleDbParameter[] commandParameters)
{
parmCache[cacheKey] = commandParameters;
}
#endregion
#region GetCachedParameters
public static OleDbParameter[] GetCachedParameters(string cacheKey)
{
OleDbParameter[] cachedParms = (OleDbParameter[])parmCache[cacheKey];
if (cachedParms == null)
return null;
OleDbParameter[] clonedParms = new OleDbParameter[cachedParms.Length];
for (int i = 0, j = cachedParms.Length; i < j; i++)
clonedParms[i] = (OleDbParameter)((ICloneable)cachedParms[i]).Clone();
return clonedParms;
}
#endregion
#region PrepareCommand
private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, OleDbTransaction trans, CommandType cmdType, string cmdText, OleDbParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans;
cmd.CommandType = cmdType;
if (cmdParms != null)
{
foreach (OleDbParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
#endregion
#region AddOleDbParas
private static OleDbCommand AddOleDbParas(OleDbParameter[] OleDbParas, string cmdText, CommandType cmdType, OleDbConnection OleDbDataConn)
{
OleDbCommand OleDbComm = new OleDbCommand(cmdText, OleDbDataConn);
OleDbComm.CommandType = cmdType;
if (OleDbParas != null)
{
foreach (OleDbParameter p in OleDbParas)
{
OleDbComm.Parameters.Add(p);
}
}
return OleDbComm;
}
#endregion
--------------------编程问答-------------------- 你是不是在web.config中添加了权限设置啊?如果是请加FormsAuthentication.RedirectFromLoginPage(this.txtUserName.Text, false);
退出时加System.Web.Security.FormsAuthentication.SignOut(); --------------------编程问答-------------------- 亲,你这码发的,让人看的很蛋疼啊 --------------------编程问答-------------------- 排个版啊 --------------------编程问答-------------------- 你传过来的参数值能取到吗?
代码看得有些乱 --------------------编程问答--------------------
这个我也看不太懂,还请高手相助啊! --------------------编程问答--------------------
好的,这个是我下载下来的模版 --------------------编程问答--------------------
附件发不了,怎么才能把整个站点文件发给您看看呢? --------------------编程问答-------------------- OleDbDataReader dr=(OleDbDataReader)OleDbHelper.ExecuteReader(CommandType.Text, "select * from Admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString() + "'");
你的OleDbHelper里面没有定义
ExecuteReader(CommandType cmdType,String sql)
的方法啊
你应该写成
OleDbDataReader dr=(OleDbDataReader)OleDbHelper.ExecuteReader(CommandType.Text, "select * from Admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString() + "'",null);
啊
--------------------编程问答-------------------- 另外你打印出
去数据库中去查,能查到数据吗
System.Web.HttpContext.Current.Response.Write("select * from Admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString() + "'"); --------------------编程问答--------------------
这个是我下载下来的模版,怎么看是不是添加了权限设置呢? --------------------编程问答--------------------
我用Access打开数据库,里面是有对应的用户名跟密码的 --------------------编程问答-------------------- 估计密码加密了的原因!! --------------------编程问答--------------------
我也有想过这个问题,但我对这个还不熟,不知道怎么改,请赐教 --------------------编程问答--------------------
改了,还是不行啊 --------------------编程问答-------------------- System.Web.HttpContext.Current.Response.Write("select * from Admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString() + "'");
去数据库中手工查询看有结果吗 --------------------编程问答-------------------- 跟踪下if (dr["password"].ToString() == jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString())
看看她们数据是什么? --------------------编程问答--------------------
嗯,有结果 --------------------编程问答--------------------
怎么跟踪呢,我菜鸟,不明白啊 --------------------编程问答-------------------- 设置断点 --------------------编程问答--------------------
你登陆方法加密了账号和密码,在数据库里的数据没有加密。所以虽然你输入的和数据库的一样,但经过加密后就不一样了。所以就会登录失败。
添加方法和登陆方法都要将密码加密。这样才能保持一致。
--------------------编程问答-------------------- 蛋疼的代码!!!!!!!!!!
补充:.NET技术 , ASP.NET