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"]) 您好!<br />欢迎登录@(ChaoXingPMS.Utils.Site.Name)。<br /><a href="interfaceapi?mode=exit&backurl=@(Server.UrlEncode(Request.Url.AbsoluteUri))">退出</a>
</span>
</div>
}
else
{
<div class="login">
证 号: <input type="text" name="username" id="username" class="zjh" /><br />
密 码: <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
$("#login").click(); //调用登录按钮的登录事件
})
$("#pw").keydown(function () {
if (event.keyCode == ) //回车键的键值为13
$("#login").click(); //调用登录按钮的登录事件
})
$("#login").click(function () {
var name = $("#username").val();
var pw = $("#pw").val();
if (name == "" || pw == "") {
$("#tip").html("<em>* </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 == ) {
$("#tip").html("");
//window.location = '/';
location.reload();
//$("#logindiv").html("<div class='login_top'>用户登录</div><span style='line-height:58px;'>" + d.uname + " 您好!<br/>欢迎登录" + d.wname + "。<a href='/interface/LoginData.cshtml?outtype=logout'> 退出</a></span>");
}
else {
$("#tip").html("<em>* </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, , 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("欢迎您") > )
{
Session["isNowLogin"] = ;//是否是登陆动作
Session["isLogin"] = ;//是否登陆成功
Session["username"] = username;
Session["password"] = password;
Session["logingMsg"] = "登录成功!";
if (IsAjax)
{
ExecuteResult(c => c.Json(new { status = , uname = username, upwd = password}));
return;
} }
else
{
Session["isNowLogin"] = ;
Session["isLogin"] = ;
Session["logingMsg"] = "登录失败!";
string message = "登录失败!";
if (IsAjax)
{
ExecuteResult(c => c.Json(new { status = , message = message }));
return;
}
}
ajax请求模拟登录的更多相关文章
- Python post请求模拟登录淘宝并爬取商品列表
一.前言 大概是一个月前就开始做淘宝的爬虫了,从最开始的用selenium用户配置到selenium模拟登录,再到这次的post请求模拟登录.一共是三篇博客,记录了我爬取淘宝网的经历.期间也有朋友向我 ...
- 2020.10.20 利用POST请求模拟登录知乎
前两天学习了Python的requests模块的相关内容,对于用GET和PSOT请求访问网页以抓取需要的内容有了初步的了解,想要再从一些复杂的网站积累些经验.最开始我采用最简单的get(url)方法想 ...
- 利用POST请求模拟登录豆瓣
需要用requests库 豆瓣上次更新后,就不能通过直接的requests.post()方式直接传递参数登录了.必须新建session,先GET请求,然后POST才能成功.原因未知 data参数中的四 ...
- C#模拟登录后请求查询
需求是这样子的,想开发一个外挂程序,能够抓取别的系统的数据,从而实现数据验证. 比如这样一个界面: 使用Chrome浏览器分析http请求和响应过程以及页面的html代码,发现这是一个ajax请求,于 ...
- day78_淘淘商城项目_11_单点登录系统实现 + 用户名回显 + ajax请求跨域问题详解_匠心笔记
课程计划 1.SSO注册功能实现 2.SSO登录功能实现 3.通过token获得用户信息 4.ajax跨域请求解决方案--jsonp 1.服务接口实现 SSO系统就是解决分布式环境下登录问题的,本 ...
- 通过配置http拦截器,来进行ajax请求验证用户登录的页面跳转
在.NET中验证用户是否登录或者是否过期,若需要登录时则将请求转向至登录页面. 这个流程在进行页面请求时是没问题的,能正确进行页面跳转. 然而在使用xmlhttprequest时,或者jq的getJs ...
- 使用 jQuery Mockjax 插件模拟 Ajax 请求
在实际的开发过程中,前端后台协商好了统一的接口,就各自开始自己的任务了.这时候我有这么一个 Ajax 请求需要从后台获取数据: $.ajax({ url: '/products/' }).done(f ...
- AJAX请求遭遇未登录和Session失效的解决方案
使用技术:HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定.但是AJAX却是例外的,所以解决方法是设置响应为session失效. 一 ...
- Session失效后所有Ajax请求跳转登录地址
当登录的Session失效后,采用ajax请求数据时会没有反应,这时候应该自动跳转到登录页面,让用户重新登录. 全局配置以下可实现 $(function() { $.ajaxSetup({ compl ...
随机推荐
- 用shell脚本批量修改文件后缀名
早上本想将一些照片上传到相册中,但是由于所有照片的扩展名都是JPG而不是小写的jpg,因此造成了“格式不正确”而不能上传照片.此刻就产生了这样一个问题:使用shell脚本如何批量将所有文件的扩展名JP ...
- 原始的2文件的makefile错误
从来没系统的看过makefile文档,平时属于复制模板,用完即忘,下午尝试按自己的理解写一个最简单的makefile,含2个.c文件,1个.h文件,费了个把小时,参考别人的文章才弄出来,特记录. ma ...
- 免费微信公众号专用h5在线电影票API
免费h5在线电影票API,通过嵌套返回的h5页面url,实现电影票购买. 接口文档:https://www.juhe.cn/docs/api/id/252,通过此申请APPKEY 接口备注:通过请求返 ...
- 《TCP/IP详解 卷一》读书笔记-----TCP persist &Keeplive timer
1.persist timer:当接收方建议的窗口大小为0时,发送方就会停止发送,直到接收方有缓存空间时再用一个窗口值非零的ACK提示发送方可以继续发送.但是这个称为window update的ACK ...
- 二分法 codevs 1432 总数统计
codevs 1432 总数统计 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 给出n个数,统计两两之和小于k的方 ...
- 页面分享代码share
在开发一个页面的时候常常会有这么一个小功能,就是分享该页面中的信息. 常见的分享代码有百度分享,JiaThis分享插件,bshare分享插件等,我主要分享一下自定义分享代码,如下: function ...
- UVA 12266 Stock prices --优先队列
优先队列. 做法:维护两个优先队列:quesell 和 quebuy, 一个是小值优先,一个是大值优先.每次push的时候,都取各自的Top元素,比较价格,如果卖的比卖的出价低,则成交,各自的要买 ...
- FZU1894 志愿者选拔 --单调队列
做法:维护一个单调递减序列,只需输出序列中的第一个元素即可. 对于命令我们可以进行不同的处理: 如果是Q命令,则判断当前队列中是否仍有元素,如果没有则输出-1,如果有则直接输出队首. 如果是G命令,则 ...
- Unity2D Sprite Packer用法介绍
想充分利用图片空间? 我们用来做sprite的图片通常会留有很多空白的地方,我们在画完了sprite之后,这些地方很可能就没有什么作用了. 如果想避免这些资源上的浪费,我们可以把各个sprite做成图 ...
- Android应用中菜单(Menu)的位置显示问题
http://blog.csdn.net/songjinshi/article/details/17381245 注意:为了适配4.0菜单能够横向显示,建议在activity中添加android:th ...