asp.net中使用CustomValidator来做用户名是否重复

原创 2007年09月22日 14:55:00

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

在<head></head>中加入如下代码

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

<script language="javascript">
            function ValidationFunctionName(source, arguments)
                
...{
                    var userName 
=document.getElementById("txtUserName");
                    var userpwd 
= document.getElementById("oldPwd")
                    var oBao 
= new ActiveXObject("Microsoft.XMLHTTP");
                    
//alert(userName.value);
                    
//alert(userpwd.value);
                    oBao.open("Get","CheckUpdateAdmin.aspx?username=" + userName.value+"&userpwd="+userpwd.value+"",false);  
                    oBao.send();
                    var strResult 
= oBao.responseText;

                    
//如果返回 1 就代表可以使用,否则不能通过验证
                    if (Number(strResult) == 1)
                        arguments.IsValid 
= true;    
                    
else
                        arguments.IsValid 
= false;
                }

        
</script>

下面是相应控件代码

<tr>
                                
<td width="29%" bgColor="#f0f0f0" height="22">
                                    
<div align="right">管理员昵称:</div>
                                
</td>
                                
<td width="71%" bgColor="#f0f0f0"><FONT face="宋体">
                                        
<asp:TextBox id="txtUserName" runat="server" Enabled="False"></asp:TextBox></FONT></td>
                            
</tr>
                            
<tr>
                                
<td width="29%" bgColor="#f0f0f0" height="22">
                                    
<div align="right">原始密码:</div>
                                
</td>
                                
<td width="71%" bgColor="#f0f0f0"><FONT face="宋体"><asp:textbox id="oldPwd" runat="server"></asp:textbox><asp:requiredfieldvalidator id="Requiredfieldvalidator1" runat="server" ErrorMessage="密码不能空!" ControlToValidate="txtEnBigClass"
                                            Display
="Dynamic"></asp:requiredfieldvalidator>
                                        
<asp:CustomValidator id="CustomValidator1" runat="server" ErrorMessage="对不起,你的原始密码不对!" ControlToValidate="oldPwd"
                                            ClientValidationFunction
="ValidationFunctionName"></asp:CustomValidator></FONT></td>
                            
</tr>

 

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.就可以了。

<globalization 
            requestEncoding
="gb2312" 
            responseEncoding
="gb2312" 
   
/>
/**//// <summary>
        
/// 用来判断用户在修改密码的时候原始密码是否正确
        
/// </summary>
        
/// <param name="admin_name">用户的昵称</param>
        
/// <param name="admin_pwd">用户的原始密码</param>
        
/// <returns></returns>

        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;
        }

注册用户名检测(无刷新,无提交,填写完毕自动检测数据库是否存在相同用户名。带数据库,可直接使用)

  • 2013年09月27日 00:28
  • 14KB
  • 下载

表单注册验证用户名是否重复——Ajax学习手记

最近由于备课的需要对Ajax来了兴趣,虽然不确定这样的兴趣可以维持多久,不过还是兴致勃勃开始写学习笔记,先通过一个最简单的实例,来了解一下Ajax。大家在社区注册用户时都见过这样的效果,填写用户名后,...
  • zjiezhuo
  • zjiezhuo
  • 2010年09月02日 19:59
  • 2506

js验证注册用户名重复

在注册页面及某些对象新增页面往往会用到验证数据库中是否已存在该对象。如果调用后台去访问数据库,显示要等用户提交后,刷新页面。下面介绍一种常用方法,用js+webservice实现无刷新验证;为避免数据...
  • jinqilin1982
  • jinqilin1982
  • 2011年02月23日 09:35
  • 2476

CustomValidator控件用法

虽然大部分时间一直从事asp.net的开发,对于一些常用的asp.net服务器端验证控件及它们的组合使用比较熟悉,如:CompareValidator ——比较验证控件RangeValidator —...
  • zhoufoxcn
  • zhoufoxcn
  • 2007年10月30日 16:26
  • 11730

判断用户重名 asp.net

  • 2011年04月22日 14:50
  • 1KB
  • 下载

ASP.NET中Custom Validator验证控件的使用

新建一个网站,默认主页为
  • yayun0516
  • yayun0516
  • 2014年07月15日 10:10
  • 1317

ASP.NET表单验证之CustomValidator控件

     CompareValidator:该控件可以完成3种数据验证。1、数据类型的验证;2、输入字符串值与固定值得比较(设置ValueToCompare属性);3、两个输入字符串值得比较验证(设置...
  • hongdi
  • hongdi
  • 2010年02月08日 00:16
  • 3674

[ASP.NET]为什么CustomValidator验证控件在验证DropdownList的时候不能设置ControlToValidate属性

在使用ASP.NET Web Forms开发时,有时会给一些下拉控件,添加自定义验证,但由于对Validator使用的惯性,往往会设置它的ControlToValidate属性,如下代码所示: ...
  • bclz_vs
  • bclz_vs
  • 2012年05月04日 13:51
  • 3629

在PHP中应用AJAX技术检测用户名是否重复

在PHP中应用AJAX技术检测用户名
  • qq366567
  • qq366567
  • 2015年12月05日 09:40
  • 234

ASP.NET中Custom Validator验证控件的使用

新建一个网站,默认主页为
  • yayun0516
  • yayun0516
  • 2014年07月15日 10:10
  • 1317
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net中使用CustomValidator来做用户名是否重复
举报原因:
原因补充:

(最多只允许输入30个字)