ajax请求模拟登录

前台

    @if (Session["username"] != null)
                    {
                        <div class="login">
                            <span style="width:155px;height:85px;display:inline-block;margin-left:50px;margin-top:25px;text-align:center">
                                @(Session["username"])&nbsp;&nbsp;您好!<br />欢迎登录@(ChaoXingPMS.Utils.Site.Name)。<br /><a href="interfaceapi?mode=exit&[email protected](Server.UrlEncode(Request.Url.AbsoluteUri))">退出</a>
                            </span>
                        </div>
                    }
                else
                {
                    <div class="login">
                        证 号:&nbsp;&nbsp;<input type="text" name="username" id="username" class="zjh" /><br />
                        密 码:&nbsp;&nbsp;<input type="password" name="pw" id="pw" class="mm" /><br />
                       <input class="login_btn" type="button" value="登录" name="button" id="login"  style="cursor:pointer"/>
                    </div>
                }

js:

$(function () {
    $("#btn_login").click(function () {
        $(".pop_login").css("display", "block");
        $(".pop_last").css("display", "block");
    });
    $("#close").click(function () {

        $(".pop_login").css("display", "none");
        $(".pop_last").css("display", "none");

    });

    $("#username").keydown(function () {
        if (event.keyCode == 13)   //回车键的键值为13
            $("#login").click(); //调用登录按钮的登录事件
    })
    $("#pw").keydown(function () {
        if (event.keyCode == 13)   //回车键的键值为13
            $("#login").click(); //调用登录按钮的登录事件
    })

    $("#login").click(function () {
        var name = $("#username").val();
        var pw = $("#pw").val();
        if (name == "" || pw == "") {
            $("#tip").html("<em>*&nbsp;</em>账号密码不能为空");
            return;
        }
        $.ajax({
            type: "post",
            dataType: "json",
            data: "username=" + name + "&password=" + pw + "&mode=" + loginmode + "&time=" + (new Date().getTime()),
            //url: "InterFaceAPI",
            url: "/interface/LoginData.cshtml",
            error: function (XmlHttpRequest, textStatus, errorThrown) { alert(XmlHttpRequest.responseText); },
            success: function (d) {
                if (d.status == 1) {
                    $("#tip").html("");
                    //window.location = ‘/‘;
                    location.reload();
                    //$("#logindiv").html("<div class=‘login_top‘>用户登录</div><span style=‘line-height:58px;‘>" + d.uname + "&nbsp;&nbsp;您好!<br/>欢迎登录" + d.wname + "。<a href=‘/interface/LoginData.cshtml?outtype=logout‘>&nbsp;&nbsp;退出</a></span>");
                }
                else {
                    $("#tip").html("<em>*&nbsp;</em>" + d.message);
                }
            }
        });

    });
})

ajax请求:

var username = HttpContext.Current.Request["username"];
    var password = HttpContext.Current.Request["password"];
 var loging_url = appSetting["loging_url"].ToString();
var pwdm5 = ChaoXingPMS.Utils.MD5.Lower32(password);
        string formUrl = loging_url;//url地址
        string returnUrl = "";
        //string logintypej = "CALLNO";
        //string URL = "ReaderTable.aspx";
        string formData = "returnUrl=" + returnUrl + "&rdid=" + username + "&rdPasswd=" + pwdm5;
        CookieContainer cookieContainer = new CookieContainer();
        // 将提交的字符串数据转换成字节数组
        byte[] postData = Encoding.UTF8.GetBytes(formData);
        HttpWebRequest request = WebRequest.Create(formUrl) as HttpWebRequest;
        Encoding myEncoding = Encoding.GetEncoding("gb2312");
        request.Method = "POST";
        request.KeepAlive = false;
        request.AllowAutoRedirect = true;
        request.ContentType = "application/x-www-form-urlencoded";
        request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
        request.CookieContainer = cookieContainer;
        request.ContentLength = postData.Length;
        // 提交请求数据
        System.IO.Stream outputStream = request.GetRequestStream();
        outputStream.Write(postData, 0, postData.Length);
        outputStream.Close();

        HttpWebResponse response;
        Stream responseStream;
        StreamReader reader;
        string srcString;
        response = request.GetResponse() as HttpWebResponse;
        responseStream = response.GetResponseStream();
        reader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
        srcString = reader.ReadToEnd();
        reader.Close();

        //关闭流对象
        reader.Close();
        responseStream.Close();
        reader.Close();
        response.Close();

        //确认是否能获取权限
        if (srcString.IndexOf("欢迎您") > 0)
        {
            Session["isNowLogin"] = 1;//是否是登陆动作
            Session["isLogin"] = 1;//是否登陆成功
            Session["username"] = username;
            Session["password"] = password;
            Session["logingMsg"] = "登录成功!";
            if (IsAjax)
            {
                ExecuteResult(c => c.Json(new { status = 1, uname = username, upwd = password}));
                return;
            }

        }
        else
        {
            Session["isNowLogin"] = 1;
            Session["isLogin"] = 0;
            Session["logingMsg"] = "登录失败!";
            string message = "登录失败!";
            if (IsAjax)
            {
                ExecuteResult(c => c.Json(new { status = 0, message = message }));
                return;
            }
        }
时间: 2024-08-09 09:19:51

ajax请求模拟登录的相关文章

C#模拟登录后请求查询

需求是这样子的,想开发一个外挂程序,能够抓取别的系统的数据,从而实现数据验证. 比如这样一个界面: 使用Chrome浏览器分析http请求和响应过程以及页面的html代码,发现这是一个ajax请求,于是跟踪找到了具体的请求地址和查询时提交的数据. 于是就可以请求这个地址,并且封装提交的数据进行http请求即可. 但实验后发现,需要先登录系统然后才能进行查询请求. 分析系统登录部分代码发现,仍然是一个ajax post请求后台的代码,截图如下: 从js代码可以看出res=899为登录失败,其它为登

Shiro Ajax请求没有权限返回JSON,没有登录返回JSON

本文基于Shiro权限注解方式来控制Controller方法是否能够访问. 例如使用到注解: @RequiresPermissions 来控制是否有对应权限才可以访问 @RequiresUser 来控制是否存在用户登录状态才可以访问 想了解Shiro是如何通过注解来控制权限的,可以查看源码 AopAllianceAnnotationsAuthorizingMethodInterceptor ,其构造方法中添加了几个对应的权限注解方法拦截器(这里不做详细阐述). 用户在请求使用这些注解方式控制的方

AJAX请求遭遇未登录和Session失效的解决方案

使用技术:HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定.但是AJAX却是例外的,所以解决方法是设置响应为session失效. 一共分为过滤器和页面JS两个部分的设置,先看过滤器的修改: import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterCon

jQuery异步请求模拟IE登录网站

具体请求的登录验证页面后台逻辑处理,这里我们忽略,不在我们的学习范围内:关键的是使用jQuery异步请求方法,如下例子: 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> 2 3 <!DOCTYPE html PUBLIC &qu

springmvc3 拦截器,过滤ajax请求,判断用户登录,拦截规则设置

web.xml设置:(/拦截所有请求) <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name&

session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java判断是否是ajax请求)

在登录过滤器中,判断请求是ajax请求还是超链接或者地址栏变化的请求 if (httpServletReq.getHeader("x-requested-with") != null && httpServletReq.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) { JSONObject jsessiontimeout = new JSONOb

Ajax 请求 - 登录网站

JavaScript 中的ajax提交请求 $.ajax({ // 提交地址 url: "", // 提交的数据 data: { key1: value1, key2: value2, key3: value3, key4: value4 }, // 提交前事件 beforeSend: function () { login.hide(); showInfo.html(loginInfo); }, // 提交方式 type: "POST", // 提交的数据类型 d

C#模拟请求,模拟登录,Cookie设置、文件上传等问题汇总

由于业务需求,最近需要模拟完成登陆某个网站,并上传所需要的文件.在开发途中,遇到了很多问题,现在,就我遇到的一些问题及解决办法说明如下,希望对遇到同样问题的人有所帮助.因为技术有限,可能有些内容并不完全正确或者理解有偏差,希望大家不要见怪,有不同的想法可以留言,我们共同学习,这也是我开始写博客的初衷之一. 模拟请求,首先我觉得我们需要明确的是,模拟那些请求,我们模拟请求要完成那些操作,就拿我上面的功能来说,我需要模拟登录某个网站,然后打开固定的页面,输入关键字,查找相关信息,然后上传所需要的文件

ajax请求session失效重定向到登录页面

在ajax请求的页面引入一个自定义的AjaxRedirect.js的文件 AjaxRedirect.js的代码如下: $(function(){ $.ajaxSetup({ type: 'POST', complete: function(xhr,status) { var sessionStatus = xhr.getResponseHeader('sessionstatus'); if(sessionStatus == 'timeout') { var top = getTopWinow()