利用api接口来实现web网页登陆

  因为公司的所有链接数据库的都是用的api接口  最近做了一个用api接口登陆

    

function Login() {
if (!Validate()) {
return false;
}
var para = {};
para.action = "login_by_api";
para.login_name = $.trim($("#txtLoginName").val());
para.password = $.trim($("#txtPassword").val());
$(".login-btn").attr("disabled", "disabled");
$.post("/handler/LoginHandler.ashx", para, function (data) {
if (data.ResultCode == 0) {
var result = data.ResultData[0];
loginInfo(result);
GetMessageCount();
NeedSetSearch();
location.href = location.href;
}
else {
$("#txtPassword").val("");
$("#txtLoginName").val("")
$(".login-error").html("用户名或密码错误");
ClearLogin(false);
}
$(".login-btn").removeAttr("disabled");
}, "json");
return true;
}

 

 

    首先在控制器中调用一般处理程序

case "login_by_api":
{
#region 获取参数

string loginName = context.Request["login_name"];
string password = context.Request["password"];

#endregion

//执行查询
message = LoginByApi(loginName, password);
} break;

 

private string LoginByApi(string loginName, string password)
{
var result = new Result<object>();
try
{
var jss = new JavaScriptSerializer();
//API参数
ApiParam apiParam = new ApiParam();
apiParam.Add("login_name", loginName);
apiParam.Add("password", password);
apiParam.Add("source", 2);

var data = jss.Serialize(RequestAPIManager.Instance.Send(WebConstants.Login, apiParam.ToString()));
var rult = jss.Deserialize<ApiRult<UserInfo>>(data);
if (rult.Code == 0 && rult.Data != null && rult.Data.Code == "0")
{
List<object> ls = new List<object>();
SunTime03.Function.EcanSecurity es = new SunTime03.Function.EcanSecurity();
string ln = es.symmetry_Encode(loginName, "LoginCheck");
string pwd = es.symmetry_Encode(password, "LoginCheck");
var ui = rult.Data;
ls.Add(new { UserInfo = ui, LoginName = ln, Password = pwd });
result.ResultCode = ResultCodes.Success;
result.ResultData = ls;
SetCookie(ui.Account_Name, password, ui.Account_ID.ToString(), ui.Full_Name, "", "", "", "", "", ui.login_id, "", ui.Organization_ID, ui.Mobile, ui.Email, ui.Organization_Name, ui.NickName, ui.Token);
}
else
{
result.SetFail(ResultCodes.NotMatchedResource, "登陆失败!");
}

}
catch (Exception ex)
{
result.SetFail(ex.Message.ToString());
LogHelper.WriteLog(typeof(LoginHandler), ex);
}
return new JavaScriptSerializer().Serialize(result);
}

 

 

让后就是传入api参数,得到返回值

   就这样的   

转载于:https://www.cnblogs.com/Lyl-backpack/p/4653775.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cisco设备做流量监控的方法

方法一&#xff1a;HUB&#xff08;方法太简单。。。略&#xff09;方法二&#xff1a;TAP&#xff08;太专业了。。还要另外投资&#xff09;方法三&#xff1a;SPAN&#xff08;就是大家常说得Port Mirror或者Port Monitor&#xff09;1。Cat2900XL/3500XL2900XL(config)#int…

python数据结构_(列表)大O性能_学习笔记(2)

1.列表 1&#xff09;一般列表操作命令的复杂度&#xff08;准确来说是函数的复杂度&#xff09; 2&#xff09;时间计算&#xff08;timeit模块和Timer对象&#xff09; 要捕获我们的每个函数执行所需的时间&#xff0c;我们将使用 Python 的 timeit 模块。timeit 模块旨在 …

学习C++不要纠结了

阿里&#xff0c;腾讯2家公司均工作过。处理高并发的底层基本都是使用C来完成的&#xff0c;腾讯确实90%的程序员都是C程序员&#xff0c;而且基本每个C程序员都有2本砖头书---unix 环境高级编程 和 C Primer。 阿里大部分程序员都是JAVA程序员&#xff0c;但在关键的节点还是会…

找到你的位置(JS在页面中的位置)最常用的方式是在页面中head部分放置script元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分...

找到你的位置&#xff08;JS在页面中的位置&#xff09; 我们可以将JavaScript代码放在html文件中任何位置&#xff0c;但是我们一般放在网页的head或者body部分。放在<head>部分 最常用的方式是在页面中head部分放置<script>元素&#xff0c;浏览器解析head部分就…

国内主流.NET CMS系统整理

现在只要想做一个网站&#xff0c;马上就想到去下载一个cms来改&#xff0c;方便&#xff0c;快速&#xff0c;现如今在网上随便搜索下CMS都出现几十个不一样的品牌&#xff0c;有php的、java的、.net的&#xff0c;功能上也是各有千秋&#xff0c;如何选择一个比较适合自己的C…

数据库的事务级别介绍与操作

关系型数据库都具有一套事务级别&#xff0c;以前的开发和学习过程我很少关注过这个概念&#xff0c;今天搜集了一些资料&#xff0c;在 结合spring声明式事务学习的同时&#xff0c;总结一下数据库的事务级别与操作。 READ-UNCOMMITTED: 未提交读 会出现脏读、不可重复读、幻读…

中国做图像处理的公司

&#xff08;1&#xff09; 北京北方猎波科技有限公司&#xff1a;http://www.northwh.com/beifangliebo/main1.html 红外探测成像产品 &#xff08;2&#xff09; 深圳超多维光电子有限公司北京分公司&#xff1a;http://www.superd.com.cn 立体显示设备 &#xff08;3&…

[ilink32 Error] Error: Unresolved external 'SendARP'

[ilink32 Error] Error: Unresolved external SendARP referenced from E:\APPOBJ\KSRGETMAC.OBJ #pragma link "iphlpapi.lib" 转载于:https://www.cnblogs.com/cb168/p/5573478.html

3.cocos2dx它Menu,由menu为了实现场景切换

&#xfeff;&#xfeff;1 头文件 TMenu.h #ifndef __TMENU_H__ #define __TMENU_H__ #include "cocos2d.h" USING_NS_CC; class TMenu :public CCLayer { public: static CCScene * scene(); CREATE_FUNC(TMenu); bool init(); CCMenu * menu; void menuCallback(C…

Difference: throw or throw ex?

Difference: throw or throw ex? 主要区别在于throw出的堆栈详细程度。 throw ex只是抛出在当前代码处的错误。 throw 能够更进一步&#xff0c;抛出内部调用的具体错误。 Just for demonstrating, if you have classes in C# as follows: using System;namespace WindowsAppl…

学习笔记01:1.1 基于概率的信任

基于概率的信任 大数定律&#xff1a;当样本数量越来越多时&#xff0c;预测事件也就越来越接近于真实的事件&#xff0c;事件出现的频率无穷地接近事件发生的概率建模检验&#xff1a;人工规则->学习模型&#xff0c;数据少则重视先验&#xff0c;数据多则重视后验给予概率…

人工智能数学基础知识

方差的概念与计算公式&#xff0c;例1 两人的5次测验成绩如下&#xff1a;X&#xff1a; 50&#xff0c;100&#xff0c;100&#xff0c;60&#xff0c;50 E(X)72&#xff1b;Y&#xff1a; 73&#xff0c; 70&#xff0c; 75&#xff0c;72&#xff0c;70 E(Y)72。平均成绩相同…

学习笔记02:直播串讲——3/22

去 就 就 就 接近 就 就 接近

认真分析mmap:是什么 为什么 怎么用

mmap基础概念 mmap是一种内存映射文件的方法&#xff0c;即将一个文件或者其它对象映射到进程的地址空间&#xff0c;实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后&#xff0c;进程就可以采用指针的方式读写操作这一段内存&#xff…

数据库子查询

子查询&#xff0c;又叫做嵌套查询。 将一个查询语句做为一个结果集供其他SQL语句使用&#xff0c;就像使用普通的表一样&#xff0c;被当作结果集的查询语句被称为子查询。 子查询有两种类型&#xff1a; 一种是只返回一个单值的子查询&#xff0c;这时它可以用在一个单值可以…

摄像头资料

https://blog.csdn.net/u013749068/article/details/79463736

配置vim在源代码中自动添加作者信息

每个程序员都有自己心爱的代码编辑和查看工具&#xff0c;相信不少Linux下的程序员都喜欢用Vim&#xff0c;尽管Vim没有SourceInsight这种依托于桌面环境的编辑器看起来那样强大&#xff0c;但是Vim的高效、简洁以及强大的可配置性都让它吸引了无数忠实的fans。 很多编辑器都支…

paddle模块的详细介绍

https://blog.csdn.net/hua111hua/article/details/89415396

[CareerCup] 2.4 Partition List 划分链表

2.4 Write code to partition a linked list around a value x, such that all nodes less than x come before all nodes greater than or equal to x. LeetCode上的原题&#xff0c;请参见我之前的博客Partition List 划分链表。转载于:https://www.cnblogs.com/grandyang/p/…