用简易Ajax框架实现"无刷新用户验证"【原创】

如果您有任何意见,请留下您宝贵的意见以便告知
操作环境:Visual Studio.Net2003
操作系统:window Xp SP2

就上次分析的简易Ajax框架一篇没能给你带来什么,再或者Ajax加减乘除运算也没能告诉你什么,只能告诉你,或者是对Ajax的更进一步理解,现在用那个框架实现无刷新的用户验证,希望能给你带来点什么 

//客户端登录页面 Login.aspx ;代码如下

< HTML >
    
< HEAD >
        
< title > HelloWorld </ title >
        
< meta name = " GENERATOR "  Content = " Microsoft Visual Studio .NET 7.1 " >
        
< meta name = " CODE_LANGUAGE "  Content = " C# " >
        
< meta name = " vs_defaultClientScript "  content = " JavaScript " >
        
< meta name = " vs_targetSchema "  content = " http://schemas.microsoft.com/intellisense/ie5 " >
        
< script language = " jscript "  src = " ../Javascript/CallBackObject.js " ></ script >
        
< script language = " jscript " >
        function createRequest()
        {
            var name 
=  escape(document.getElementById( " name " ).value);
            var pass 
=  escape(document.getElementById( " pwd " ).value);
            var cbo 
=   new  CallBackObject();
            cbo.OnComplete 
=  Cbo_Complete;
            cbo.onError 
=  Cbo_Error;
            cbo.DoCallBack(
" Ajax.aspx?name= " + name + " &password= " + pass);                        
        }


        function Cbo_Complete(responseText, responseXML)
        {
            alert(responseText);
        }


        function Cbo_Error(status, statusText, responseText)
        {
            alert(responseText);
        }
        
</ script >
    
</ HEAD >
    
< body >
        
< form id = " Form1 "  method = " post "  runat = " server " >
            
< asp:Label id = " lblUsername "  runat = " server "  Width = " 70 " > UserName: </ asp:Label >< INPUT id = " name "  style = " WIDTH: 192px; HEIGHT: 22px "  type = " text "  size = " 26 " >
            
< br >
            
< asp:Label id = " lblPassword "  runat = " server "  Width = " 70px " > Password: </ asp:Label >< INPUT id = " pwd "  style = " WIDTH: 192px; HEIGHT: 22px "  type = " text "  size = " 26 " >
            
< br >
            
< input type = " button "  value = " Login! "  onclick = " createRequest() "  style = " WIDTH: 128px; HEIGHT: 24px " >
        
</ form >
    
</ body >
</ HTML >

代码解释:<script language="jscript" src="../Javascript/CallBackObject.js"></script>  CallBackObject.js 就是前面提到的简易Ajax框架,再这就不提供了,详细请看另篇 简易Ajax框架解释【原创】

Login.aspx.cs 页面不需要什么,主要在客户端提交

服务器处理页面:AJAX.asp.cs

using  System;
using  System.Collections;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Web;
using  System.Web.SessionState;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.HtmlControls;
using  System.Data.SqlClient;

namespace  AjaxFrmClass
{
    
///   <summary>
    
///  AjaxTest 的摘要说明。
    
///   </summary>
     public   class  AjaxTest : System.Web.UI.Page
    {
        
private   void  Page_Load( object  sender, System.EventArgs e)
        {
            
// show();
             #region  用户登陆
            
switch (LoginVerify())
            {
                
case   " 1 " :
                    HttpContext.Current.Response.Clear();
                    HttpContext.Current.Response.Write(
" 密码不正确 " );
                    HttpContext.Current.Response.Flush();
                    HttpContext.Current.Response.End();
                    
                    
break ;
                
case   " 2 " :
                    HttpContext.Current.Response.Clear();
                    HttpContext.Current.Response.Write(
" 用户名不存在 " );
                    HttpContext.Current.Response.Flush();
                    HttpContext.Current.Response.End();
                    
break ;
                
default :
                    
                    
break ;
            }
            
#endregion
        }


        
#region  输入地用户名进行判断
        
///   <summary>
        
///  对用户输入的用户名和密码进行有效性验证
        
///   </summary>
        
///   <returns></returns>
         public   string  LoginVerify()
        {
            
try
            {

                
string  strName  =  HttpContext.Current.Request.QueryString[ " name " ];
                
string  strPwd  =  HttpContext.Current.Request.QueryString[ " password " ];

                SqlParameter  MyParameter
=   new  SqlParameter();
                SqlCommand  cmd 
=   new  SqlCommand();
                SqlConnection con 
=   new  SqlConnection( " uid=sa;pwd=1234;database=pubs " );
                cmd.CommandType 
=  CommandType.StoredProcedure;
                cmd.CommandText 
=   " SP_User_Login " ;
                cmd.Connection  
=  con;
                
                
                MyParameter 
=  cmd.Parameters.Add( " @RETURN_VALUE " ,SqlDbType.Int);
                MyParameter.Direction 
=  ParameterDirection.ReturnValue;
                cmd.Parameters.Add(
" @name " ,strName);
                cmd.Parameters.Add(
" @pwd " , strPwd);
                con.Open();
                cmd.ExecuteNonQuery();
                
return  cmd.Parameters[ " @RETURN_VALUE " ].Value.ToString(); 
            }
            
catch (Exception errExce)
            {
                
return  errExce.Message.ToString();
            }
            
finally
            {
                
            }
        }
        
#endregion

        
#region  Web 窗体设计器生成的代码
        
override   protected   void  OnInit(EventArgs e)
        {
            
//
            
//  CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
            
//
            InitializeComponent();
            
base .OnInit(e);
        }
        
        
///   <summary>
        
///  设计器支持所需的方法 - 不要使用代码编辑器修改
        
///  此方法的内容。
        
///   </summary>
         private   void  InitializeComponent()
        {    
            
this .Load  +=   new  System.EventHandler( this .Page_Load);

        }
        
#endregion
    }
}

 

Ajax.aspx 不需要做处理,此时只需要在服务器端处理即可

完成以上2个页面的操作,基本上算是成功了,就差一个登录的存储过程了 

CREATE PROC SP_User_Login
(
      @name VARCHAR(15),
      @pwd   VARCHAR(15)   
)
AS
      DECLARE @temp_Name VARCHAR(15)
BEGIN
      SELECT  @temp_Name=UserName
      FROM     t_UserLogin
      WHERE   UserName = @name
         AND
              Password  = @pwd
      IF @temp_Name IS NOT NULL
          RETURN 0    --登录成功     
 IF EXISTS (SELECT UserName
            FROM   t_UserLogin
                   WHERE  UserName = @name)
          RETURN 1    --密码不正确
        ELSE
          RETURN 2    --用户名不存在 
END
GO

 

存储过程写完了,Ctrl + F5即可看见效果

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值