小弟做页面验证的时候碰见了一个比较郁闷的问题~~~不知道怎么做的,反正调试的时候就是不出来,还不说通没通过严整就是if 和 else 里面的验证都不执行~~~求高手帮我调试,并且支持错误代码和解决办法~源代码:WebUserManager.rar下载地址:ftp1.nofeehost.comname is: blackangelCanpassword is: 4121887谢谢高手了~

解决方案 »

  1.   

    东西不敢down...能把代码贴出来吗?
      

  2.   

    Default.aspx.csusing System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Text;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page 
    {
        private static string sValidator = "";
        private StringBuilder LetterList = new StringBuilder();
        //private readonly string sValidatorImageUrl = "ValidateImage.aspx?Validator=";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                sValidator = CreateValidateString(6);
                Label1.Text = sValidator;
            }
        }
        protected void LoginBtn_Click(object sender, EventArgs e)
        {
            //如果拥护合法
            if (Page.IsValid == true)
            {
                Message.Text = "验证码输入错误,请重新输入!!";
                sValidator = CreateValidateString(6);
                Label1.Text = sValidator;
                return;
            }
            string userId = "";
            IUser user = new User();
            //对输入信息进行编码
            string sUsername = Server.HtmlEncode(UserName.Text.Trim());
            string sPassword = Server.HtmlEncode(Password.Text.Trim());
            //获取用户信息
            SqlDataReader recu = user.GetUserLoginByProc(sUsername, user.Encrypt(sPassword));
            //判断用户是否合法
            if (recu.Read())
            {
                userId = recu["UserID"].ToString();
            }
            recu.Close();
            if ((userId != null) && (userId != ""))
            {
                Session["UserID"] = userId;
                Response.Redirect("http://www.baidu.com");
            }
            else
            {
                
                sValidator = CreateValidateString(6);
                Label1.Text = sValidator;
                Message.Text = "您输入的用户名或密码有误请重新输入";
            }
        }
        private int GetRandomint(int min, int max)
        {
            Random random = new Random();
            return (random.Next(min, max));
        }
        private void InitLetterList()
        {
            for (int i = 0; i < 10; i++)
            { 
                //添加数字
                LetterList.Append(i.ToString());
            }
            for (int i = 0; i < 10; i++)
            {
                //添加大写
                LetterList.Append(((char)((int)'a'+i)).ToString());
            }
            for (int i = 0; i < 10; i++)
            {
                //添加小写
                LetterList.Append(((char)((int)'A' + i)).ToString());
            }
        }
        private string CreateValidateString(int nLen)
        {
            InitLetterList();
            //创建一个sb对象
            StringBuilder sb = new StringBuilder(nLen);
            for (int i = 0; i < nLen; i++)
            {
                int index = GetRandomint(0, LetterList.Length - 1);
                sb.Append(LetterList[index].ToString());
                LetterList.Remove(index, 1);
            }
            return (sb.ToString());
        }
        protected void CancelBtn_Click(object sender, EventArgs e)
        {
            UserName.Text = "";
            Label1.Text = sValidator;
        }
    }
      

  3.   

    App_Code 
      User.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.SqlClient;
    using System.Security;
    using System.Security.Principal;
    using System.Security.Cryptography;
    using System.Text;public interface IUser
    {
        /// <summary>
        /// 使用SQL语句实现用户登录
        /// </summary>
        /// <param name="sUserName"></param>
        /// <param name="sPassword"></param>
        /// <returns></returns>
        SqlDataReader GetUserLoginBySQL(string sUserName, string sPassword);    /// <summary>
        /// 使用存储过程实现用户登录
        /// </summary>
        /// <param name="sUserName"></param>
        /// <param name="sPassword"></param>
        /// <returns></returns>
        SqlDataReader GetUserLoginByProc(string sUserName, string sPassword);    /// <summary>
        /// 获取所有用户信息
        /// </summary>
        /// <returns></returns>
        SqlDataReader GetUsers();    /// <summary>
        /// 获取单个用户信息
        /// </summary>
        /// <param name="nUserID"></param>
        /// <returns></returns>
        SqlDataReader GetSingleUser(int nUserID);    /// <summary>
        /// 注册一个新用户
        /// </summary>
        /// <param name="sUserName"></param>
        /// <param name="sPassword"></param>
        /// <param name="sEmail"></param>
        /// <returns></returns>
        int AddUser(string sUserName, string sPassword, string sEmail);    /// <summary>
        /// 修改用户的信息
        /// </summary>
        /// <param name="nUserID"></param>
        /// <param name="sEmail"></param>
        /// <returns></returns>
        int UpdateUser(int nUserID, string sEmail);    /// <summary>
        /// 修改用户密码
        /// </summary>
        /// <param name="nUserID"></param>
        /// <param name="sPassword"></param>
        /// <returns></returns>
        int UpdateUserPwd(int nUserID, string sPassword);    /// <summary>
        /// 设置用户的管理员权限
        /// </summary>
        /// <param name="nUserID"></param>
        /// <param name="bIsAdmin"></param>
        /// <returns></returns>
        int UpdateUserAdmin(int nUserID, bool bIsAdmin);    /// <summary>
        /// 删除用户
        /// </summary>
        /// <param name="nUserID"></param>
        /// <returns></returns>
        int DeleteUser(int nUserID);    /// <summary>
        /// 加密函数
        /// </summary>
        /// <param name="password"></param>
        /// <returns></returns>
        string Encrypt(string password);
    }/// <summary>
    /// User 的摘要说明
    /// </summary>
    public class User : IUser
    {
        private static readonly string GETUSERS = "SELECT * FROM Users";
        private static readonly string GETSINGLEUSER = "SELECT * FROM Users WHERE UserID=";
        private static readonly string ADDUSER = "INSERT INTO Users(UserName,Password,Email,IsAdmin)VALUES";
        private static readonly string UPDATEUSER = "UPDATE Users SET Email=";
        private static readonly string UPDATEUSERADMIN = "UPDATE Users SET IsAdmin=";
        private static readonly string UPDATEUSERPASSWORD = "UPDATE Users SET Password=";
        private static readonly string DELETEUSER = "DELETE Users WHERE UserID=";
        private static readonly string GETUSERLOGINBYSQL = "SELECT UserID FROM Users WHERE UserName =";
      

  4.   

    public User()
        {
            ///
        }    public SqlDataReader GetUserLoginBySQL(string sUserName, string sPassword)
        {
            ///创建链接
            SqlConnection myConnection = new SqlConnection(
                ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);        ///定义SQL语句
            string cmdText = GETUSERLOGINBYSQL
                + "'" + sUserName.ToString() + "'"
                + " AND Password ="
                + "'" + sPassword.ToString() + "'";
            ///创建Command
            SqlCommand myCommand = new SqlCommand(cmdText, myConnection);        ///定义DataReader
            SqlDataReader dr = null;
            try
            {
                ///打开链接
                myConnection.Open();
                ///读取数据
                dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (SqlException ex)
            {
                ///抛出异常
                throw new Exception(ex.Message, ex);
            }
            ///返回DataReader
            return dr;
        }    public SqlDataReader GetUserLoginByProc(string sUserName, string sPassword)
        {
            ///创建链接
            SqlConnection myConnection = new SqlConnection(
                ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);        ///创建Command
            SqlCommand myCommand = new SqlCommand("Pr_GetUserLogin", myConnection);
            ///设置为执行存储过程
            myCommand.CommandType = CommandType.StoredProcedure;        ///添加存储过程的参数
            SqlParameter pUserName = new SqlParameter("@UserName", SqlDbType.VarChar, 32);
            pUserName.Value = sUserName;
            myCommand.Parameters.Add(pUserName);        SqlParameter pPassword = new SqlParameter("@Password", SqlDbType.VarChar, 255);
            pPassword.Value = sPassword;
            myCommand.Parameters.Add(pPassword);        ///定义DataReader
            SqlDataReader dr = null;
            try
            {
                ///打开链接
                myConnection.Open();
                ///读取数据
                dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (SqlException ex)
            {
                ///抛出异常
                throw new Exception(ex.Message, ex);
            }
            ///返回DataReader
            return dr;
        }    public SqlDataReader GetUsers()
        {
            ///创建链接
            SqlConnection myConnection = new SqlConnection(
                ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);
            ///创建Command
            SqlCommand myCommand = new SqlCommand(GETUSERS, myConnection);        ///定义DataReader
            SqlDataReader dr = null;
            try
            {
                ///打开链接
                myConnection.Open();
                ///读取数据
                dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (SqlException ex)
            {
                ///抛出异常
                throw new Exception(ex.Message, ex);
            }
            ///返回DataReader
            return dr;
        }    public SqlDataReader GetSingleUser(int nUserID)
        {
            ///创建链接
            SqlConnection myConnection = new SqlConnection(
                ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);        ///定义SQL语句
            string cmdText = GETSINGLEUSER + "'" + nUserID.ToString() + "'";
            ///创建Command
            SqlCommand myCommand = new SqlCommand(cmdText, myConnection);        ///定义DataReader
            SqlDataReader dr = null;
            try
            {
                ///打开链接
                myConnection.Open();
                ///读取数据
                dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (SqlException ex)
            {
                ///抛出异常
                throw new Exception(ex.Message, ex);
            }
            ///返回DataReader
            return dr;
        }    public int AddUser(string sUserName, string sPassword, string sEmail)
        {
            ///创建链接
            SqlConnection myConnection = new SqlConnection(
                ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);        ///定义SQL语句
            string cmdText = ADDUSER + "("
                + "'" + sUserName + "',"
                + "'" + sPassword + "',"
                + "'" + sEmail + "',"
                + "'0'"
                + ")";
            ///创建Command
            SqlCommand myCommand = new SqlCommand(cmdText, myConnection);        ///定义返回值
            int nResult = -1;        try
            {
                ///打开链接
                myConnection.Open();
                ///执行SQL语句
                nResult = myCommand.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                ///抛出异常
                throw new Exception(ex.Message, ex);
            }
            finally
            {   ///关闭链接
                myConnection.Close();
            }
            ///返回nResult
            return nResult;
        }    public int UpdateUser(int nUserID, string sEmail)
        {
            ///创建链接
            SqlConnection myConnection = new SqlConnection(
                ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);        ///定义SQL语句
            string cmdText = UPDATEUSER
                + "'" + sEmail + "'"
                + " WHERE UserID=" + "'"
                + nUserID.ToString() + "'";
            ///创建Command
            SqlCommand myCommand = new SqlCommand(cmdText, myConnection);        ///定义返回值
            int nResult = -1;        try
            {
                ///打开链接
                myConnection.Open();
                ///执行SQL语句
                nResult = myCommand.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                ///抛出异常
                throw new Exception(ex.Message, ex);
            }
            finally
            {   ///关闭链接
                myConnection.Close();
            }
            ///返回nResult
            return nResult;
        }    public int UpdateUserPwd(int nUserID, string sPassword)
        {
            ///创建链接
            SqlConnection myConnection = new SqlConnection(
                ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);        ///定义SQL语句
            string cmdText = UPDATEUSERPASSWORD
                + "'" + sPassword + "'"
                + " WHERE UserID=" + "'"
                + nUserID.ToString() + "'";
            ///创建Command
            SqlCommand myCommand = new SqlCommand(cmdText, myConnection);        ///定义返回值
            int nResult = -1;        try
            {
                ///打开链接
                myConnection.Open();
                ///执行SQL语句
                nResult = myCommand.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                ///抛出异常
                throw new Exception(ex.Message, ex);
            }
            finally
            {   ///关闭链接
                myConnection.Close();
            }
            ///返回nResult
            return nResult;
        }