利用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.pswp.cn/news/257022.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257022.shtml
英文地址,請注明出處:http://en.pswp.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/…