zoukankan      html  css  js  c++  java
  • .net+jquery+ashx实现客户端模拟登陆扩展

    客户端实现:login

    namespace LoginApp
    {
        partial class Form1
        {
            /// <summary>
            /// 必需的设计器变量。
            /// </summary>
            private System.ComponentModel.IContainer components = null;
    
            /// <summary>
            /// 清理所有正在使用的资源。
            /// </summary>
            /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
    
            #region Windows 窗体设计器生成的代码
    
            /// <summary>
            /// 设计器支持所需的方法 - 不要
            /// 使用代码编辑器修改此方法的内容。
            /// </summary>
            private void InitializeComponent()
            {
                this.txtPwd = new System.Windows.Forms.TextBox();
                this.txtUserName = new System.Windows.Forms.TextBox();
                this.label2 = new System.Windows.Forms.Label();
                this.label1 = new System.Windows.Forms.Label();
                this.btnClose = new System.Windows.Forms.Button();
                this.btnLogin = new System.Windows.Forms.Button();
                this.SuspendLayout();
                // 
                // txtPwd
                // 
                this.txtPwd.Location = new System.Drawing.Point(191, 100);
                this.txtPwd.Margin = new System.Windows.Forms.Padding(4);
                this.txtPwd.Name = "txtPwd";
                this.txtPwd.PasswordChar = '*';
                this.txtPwd.Size = new System.Drawing.Size(124, 25);
                this.txtPwd.TabIndex = 11;
                this.txtPwd.Text = "admin";
                // 
                // txtUserName
                // 
                this.txtUserName.Location = new System.Drawing.Point(191, 55);
                this.txtUserName.Margin = new System.Windows.Forms.Padding(4);
                this.txtUserName.Name = "txtUserName";
                this.txtUserName.Size = new System.Drawing.Size(124, 25);
                this.txtUserName.TabIndex = 10;
                this.txtUserName.Text = "admin";
                // 
                // label2
                // 
                this.label2.AutoSize = true;
                this.label2.Location = new System.Drawing.Point(78, 100);
                this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
                this.label2.Name = "label2";
                this.label2.Size = new System.Drawing.Size(37, 15);
                this.label2.TabIndex = 9;
                this.label2.Text = "密码";
                // 
                // label1
                // 
                this.label1.AutoSize = true;
                this.label1.Location = new System.Drawing.Point(78, 55);
                this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
                this.label1.Name = "label1";
                this.label1.Size = new System.Drawing.Size(52, 15);
                this.label1.TabIndex = 8;
                this.label1.Text = "用户名";
                // 
                // btnClose
                // 
                this.btnClose.Location = new System.Drawing.Point(207, 168);
                this.btnClose.Margin = new System.Windows.Forms.Padding(4);
                this.btnClose.Name = "btnClose";
                this.btnClose.Size = new System.Drawing.Size(125, 29);
                this.btnClose.TabIndex = 7;
                this.btnClose.Text = "关闭";
                this.btnClose.UseVisualStyleBackColor = true;
                this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
                // 
                // btnLogin
                // 
                this.btnLogin.Location = new System.Drawing.Point(55, 168);
                this.btnLogin.Margin = new System.Windows.Forms.Padding(4);
                this.btnLogin.Name = "btnLogin";
                this.btnLogin.Size = new System.Drawing.Size(125, 29);
                this.btnLogin.TabIndex = 6;
                this.btnLogin.Text = "登录";
                this.btnLogin.UseVisualStyleBackColor = true;
                this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(387, 253);
                this.Controls.Add(this.txtPwd);
                this.Controls.Add(this.txtUserName);
                this.Controls.Add(this.label2);
                this.Controls.Add(this.label1);
                this.Controls.Add(this.btnClose);
                this.Controls.Add(this.btnLogin);
                this.Name = "Form1";
                this.Text = "登录";
                this.ResumeLayout(false);
                this.PerformLayout();
    
            }
    
            #endregion
    
            private System.Windows.Forms.TextBox txtPwd;
            private System.Windows.Forms.TextBox txtUserName;
            private System.Windows.Forms.Label label2;
            private System.Windows.Forms.Label label1;
            private System.Windows.Forms.Button btnClose;
            private System.Windows.Forms.Button btnLogin;
        }
    }
    View Code

    后台登陆代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace LoginApp
    {
        public partial class Form1 : Form
        {
            string strURL = "http://localhost:50229/Ashx/Login.ashx";
            public Form1()
            {
                InitializeComponent();
            }
            /// <summary>
            /// 登录
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnLogin_Click(object sender, EventArgs e)
            {
                string name = this.txtUserName.Text.Trim();
                string pwd = this.txtPwd.Text.Trim();
                // string postData = name;//要提交的数据
                //GetPage(strURL, postData);
                //定义返回json数据 解析json数据并显示信息到窗体控件值上
                // string jsoncontent = GetPage(strURL, postData);
    
                //List<Custerm> CustermList = JsonConvert.DeserializeObject<List<Custerm>>(jsoncontent);
    
                //foreach (Custerm custerm in CustermList)
                //{
    
                //    this.txtName.Text = custerm.CustermName;
                //}  
    
                StringBuilder sb = new StringBuilder();
                sb.AppendFormat("name={0}&pwd={1}", name, pwd);
                string result = GetPage(strURL, sb.ToString());
                switch (result)
                {
                    case "1":
                        MessageBox.Show("登录成功!");
                        break;
                    case "2":
                        MessageBox.Show("登录失败!");
                        break;
                    default:
                        MessageBox.Show("登录参数错误!");
                        break;
                }
            }
    
            /// <summary>  
            /// Post数据到web服务端  
            /// </summary>  
            /// <param name="strURL">网址</param>  
            /// <param name="postData">参数</param>  
            /// <returns></returns>  
            public string GetPage(string strURL, string postData)
            {
                Stream outstream = null;
                Stream instream = null;
                StreamReader sr = null;
                HttpWebResponse response = null;
                HttpWebRequest request = null;
                Encoding encoding = System.Text.Encoding.GetEncoding("UTF-8");
                
                byte[] data = encoding.GetBytes(postData);
                // 准备请求...  
                try
                {
                    // 设置参数  
                    request = WebRequest.Create(strURL) as HttpWebRequest;
                    CookieContainer cookieContainer = new CookieContainer();
                    request.CookieContainer = cookieContainer;
                    request.AllowAutoRedirect = true;
                    //Post请求方式
                    request.Method = "POST";
                    //是否保持常连接
                    request.KeepAlive = false;
                    request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)";
                    //内容类型
                    request.ContentType = "application/x-www-form-urlencoded";
                    //表示请求消息正文的长度
                    request.ContentLength = data.Length;
                    outstream = request.GetRequestStream();
                    //send the data//将传输的数据,请求正文写入请求流
                    outstream.Write(data, 0, data.Length);
                    outstream.Close();
                    //发送请求并获取相应回应数据  
                    response = request.GetResponse() as HttpWebResponse;
                    //直到request.GetResponse()程序才开始向目标网页发送Post请求  
                    instream = response.GetResponseStream();//获得请求流
                    sr = new StreamReader(instream, encoding);
                    //返回结果网页(html)代码  
                    string content = sr.ReadToEnd();
                    Console.WriteLine(content);
                    string err = string.Empty;
                    return content;
    
                }
                catch (Exception ex)
                {
                    string err = ex.Message;
                    return string.Empty;
                }
            }       
            /// <summary>
            /// 关闭
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnClose_Click(object sender, EventArgs e)
            {
                this.Close();
            }
        }
    }
    View Code

    服务端login

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>系统登录</title>
        <script type="text/javascript" src="Scripts/jquery-1.11.0.js"></script>
        <script type="text/javascript">
            $(function () {
                $("#btnLogin").click(function () {
                    var name = $("#txtUserName").val();
                    var pwd = $("#txtPwd").val();
                    $.ajax({
                        url: "Ashx/Login.ashx",
                        data: "name=" + name + "&pwd=" + pwd,
                        type: "Post",
                        dataType: "text",
                        success: function (msg) {
                            if (msg == "1") {
                                $("#divMsg").html("登录成功!");
                            } else {
                                $("#divMsg").html("登录失败!");
                            }
                        }
    
    
                    });
                });
            });
        </script>
    </head>
    <body>
        <div style="text-align:center;">
            <table>
                <tr>
                    <td>用户名:</td>
                    <td><input type="text" id="txtUserName" name="name" value="admin" /></td>
                </tr>
                <tr>
                    <td>密码:</td>
                    <td><input type="password" id="txtPwd" name="name" value="admin" /></td>
                </tr>
                <tr>
                    <td colspan="2"><input type="button" id="btnLogin" name="name" value="登录" /></td>
                </tr>
            </table>
            <div id="divMsg"></div>
        </div>
    </body>
    </html>
    View Code

    一般处理程序;Login.ashx

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace LoginWebApp.Ashx
    {
        /// <summary>
        /// Login 的摘要说明
        /// </summary>
        public class Login : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                //接收客户端传送过来的用户名和密码
                string name = context.Request["name"];
                string pwd = context.Request["pwd"];
                Userinfo info = new Userinfo();
                if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pwd))
                {
                    context.Response.Write("2");
                    //登录失败
                }
                else
                { 
                    if (name == "admin" && pwd == "admin")
                    {
                        //登录成功记入cookie
                        context.Response.Cookies["n"].Value = name;
                        context.Response.Cookies["n"].Expires = DateTime.Now.AddDays(7);
                        context.Response.Cookies["p"].Value = pwd;
                        context.Response.Cookies["p"].Expires = DateTime.Now.AddDays(7);
                        context.Response.Write("1");
                        //登陆成功
                    }
                    else
                    {
                        context.Response.Write("2");
                    }
                }
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
    View Code

    引用jquery jquery-1.11.0.js以及样式 后端登录可以扩展实现数据库的访问方式获取用户名和密码判断登录

    这里主要展现实现模拟登陆的方式  看了其他文章 跟以前做的有点相似所以在此做个改动 其实原理一样。

  • 相关阅读:
    如何在windows下安装GIT
    TortoiseGit 安装
    高并发大流量专题---3、前端优化(减少HTTP请求次数)
    高并发大流量专题---2、流量优化(防盗链处理)
    高并发大流量专题---1、高并发大流量解决方案总结
    yii2和laravel比较
    php开发面试题---日常面试题1
    php开发面试题---禁用cookie之后,如何使用session
    剑指offer---4、序列化二叉树
    北风设计模式课程---20、UML类图介绍
  • 原文地址:https://www.cnblogs.com/Warmsunshine/p/3653602.html
Copyright © 2011-2022 走看看