首页  ·  知识 ·  云计算
asp.net中使用CustomValidator来做用户名是否重复
chenguang79  http://blog.csdn.net/chenguang79/  综合  编辑:dezai  图片来源:网络
asp.net中有时候我们在做用户注册或是修改用户密码时,会遇到有时候用户名重复或是要验证一下用户的原始密码是否正确。这时候我们就要用

    asp.net中有时候我们在做用户注册或是修改用户密码时,会遇到有时候用户名重复或是要验证一下用户的原始密码是否正确。这时候我们就要用到CustomValidator这个控件了。但是我们在它自代的ServerValidate方法中写代码后会发现,它根本就没有运行。我是在2003系统下使用的。一直就没有好用过。所以就上网去了一些方法。下面我把我找到的自己使用成功的方法放上来

在中加入如下代码

 这里说明一下,CheckUpdateAdmin.aspx是用来处理查询条件代码的。在这个页面中你可以设置相应的条件。我把我写的代码放在了后面。


下面是相应控件代码


                               
                                   

管理员昵称:

                               
                               
                                       

                           
                           
                               
                                   
原始密码:

                               
                                                                            Display="Dynamic">
                                                                                    ClientValidationFunction="ValidationFunctionName">

                           
 

private void Page_Load(object sender, System.EventArgs e)
        ...{
            // 在此处放置用户代码以初始化页面
            Response.Clear();
            //string username = Request.QueryString["username"].ToString();
            //string userpwd = Request.QueryString["userpwd"].ToString();
            if(bc.isnoAdminOldPwd(Request.QueryString["username"].ToString(),Request.QueryString["userpwd"].ToString())==true)
            ...{
                Response.Write("0");
            }
            else
            ...{
                Response.Write("1");
            }

            Response.End();
        }
 这里有一点要说明的事,在传输Request.QueryString["username"]时,如果传的是中文会出现乱码,无法进行判断,这时你就要在web.config中下面这里,改成gb2312.就可以了。

            requestEncoding="gb2312"
            responseEncoding="gb2312"
   />

/**////


        /// 用来判断用户在修改密码的时候原始密码是否正确
        ///

        /// 用户的昵称
        /// 用户的原始密码
        ///
        public bool isnoAdminOldPwd(string admin_name,string admin_pwd)
        ...{
            bool sve = false;
            SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
            conn.Open();
            SqlCommand cmd = new SqlCommand("",conn);
            cmd.CommandText = "select count(*) from C_admin where ltrim(rtrim(admin_name))='"+admin_name.Trim()+"' and ltrim(rtrim(admin_pwd))='"+admin_pwd.Trim()+"'";
            int i = Convert.ToInt32(cmd.ExecuteScalar());
            if(i>0)
            ...{
                sve = false;
            }
            else
            ...{
                sve = true;
            }

            return sve;
        }

本文作者:chenguang79 来源:http://blog.csdn.net/chenguang79/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读