asp.net登录不了

acto 2012-03-30 11:02:24
在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("", "验证码输入错误!"));
}

}

}



...全文
203 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
大户翁 2012-03-30
  • 打赏
  • 举报
回复
设置断点
acto 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 的回复:]
跟踪下if (dr["password"].ToString() == jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString())

看看她们数据是什么?
[/Quote]
怎么跟踪呢,我菜鸟,不明白啊
acto 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 的回复:]
System.Web.HttpContext.Current.Response.Write("select * from Admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToSt……
[/Quote]
嗯,有结果
大户翁 2012-03-30
  • 打赏
  • 举报
回复
跟踪下if (dr["password"].ToString() == jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString())

看看她们数据是什么?
孟子E章 2012-03-30
  • 打赏
  • 举报
回复
System.Web.HttpContext.Current.Response.Write("select * from Admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString() + "'");

去数据库中手工查询看有结果吗
acto 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
OleDbDataReader dr=(OleDbDataReader)OleDbHelper.ExecuteReader(CommandType.Text, "select * from Admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jayle……
[/Quote]
改了,还是不行啊
acto 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]
估计密码加密了的原因!!
[/Quote]
我也有想过这个问题,但我对这个还不熟,不知道怎么改,请赐教
大户翁 2012-03-30
  • 打赏
  • 举报
回复
估计密码加密了的原因!!
acto 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
另外你打印出



去数据库中去查,能查到数据吗

System.Web.HttpContext.Current.Response.Write("select * from Admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jaylee.……
[/Quote]
我用Access打开数据库,里面是有对应的用户名跟密码的
acto 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
你是不是在web.config中添加了权限设置啊?如果是请加FormsAuthentication.RedirectFromLoginPage(this.txtUserName.Text, false);
退出时加System.Web.Security.FormsAuthentication.SignOut();
[/Quote]
这个是我下载下来的模版,怎么看是不是添加了权限设置呢?
孟子E章 2012-03-30
  • 打赏
  • 举报
回复
另外你打印出



去数据库中去查,能查到数据吗

System.Web.HttpContext.Current.Response.Write("select * from Admin where username='" + jaylee.replacesql(uname).ToString() + "' and password='" + jaylee.to32MD5(jaylee.replacesql(pwd).ToString()).ToString() + "'");
孟子E章 2012-03-30
  • 打赏
  • 举报
回复
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);

acto 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
你传过来的参数值能取到吗?
代码看得有些乱
[/Quote]
附件发不了,怎么才能把整个站点文件发给您看看呢?
acto 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
排个版啊
[/Quote]
好的,这个是我下载下来的模版
acto 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
string[] userInfo = admin.login(uname, pwd);

admin.login返回的是什么?

if (userInfo[2].Equals(pwd))
这个判断是正确的吗?
[/Quote]
这个我也看不太懂,还请高手相助啊!
覃祖甘 2012-03-30
  • 打赏
  • 举报
回复
你传过来的参数值能取到吗?
代码看得有些乱
joyhen 2012-03-30
  • 打赏
  • 举报
回复
排个版啊
joyhen 2012-03-30
  • 打赏
  • 举报
回复
亲,你这码发的,让人看的很蛋疼啊
dan_le 2012-03-30
  • 打赏
  • 举报
回复
你是不是在web.config中添加了权限设置啊?如果是请加FormsAuthentication.RedirectFromLoginPage(this.txtUserName.Text, false);
退出时加System.Web.Security.FormsAuthentication.SignOut();
acto 2012-03-30
  • 打赏
  • 举报
回复
接上面
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
加载更多回复(5)

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧