using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Dynamic; using System.Text; using Taurus.Core; namespace Song.Sites { //使用教程地址 //https://www.cnblogs.com/cyq1162/p/6144736.html /// /// 默认控制器(此类不要动,partial类,可以在AriesController文件夹外建立自己的业务类) /// public partial class DefaultController : Controller { [HttpGet] public override void Default() { Write("Construction..."); } /* */ //本方法可以在其它文件里实现(partial类) public static bool CheckToken(IController controller, string methodName) { controller.CheckFormat("token Can't be Empty", "token"); //实现Token验证 //controller.Write(methodName + " NoToken"); return true; } public static bool BeforeInvoke(IController controller, string methodName) { //if (controller.IsHttpPost) //{ // //拦截全局处理 // controller.Write(methodName + " NoACK"); //} return true; } } public partial class DefaultController : Controller { #region Token处理 /// /// 重写此方法时,此CheckToken的优先级>DefaultController中的静态方法CheckToken /// /// public override bool CheckToken() { string token = Query("token"); bool result = false; if (!string.IsNullOrEmpty(token)) { byte[] data = Convert.FromBase64String(token); string text = System.Text.Encoding.UTF8.GetString(data); result = text.StartsWith("JYXY:"); } if (!result) { Write("can't find token!", false); } return result; } //返回数据: //status:10账号错误;11密码错误;1登陆成功;0未知错误 //{status:1;token:”xxxxxxxxxxxxxxxxx”} public void GetToken() { try { //CheckFormat("{0}不能为空&{0}格式错误", @"un&用户名&^1[3|4|5|8][0-9]\d{8}$", @"pwd&密码&^[\u0391-\uFFE5]+$"); string userName = Query("un"); string pwd = Query("pwd"); string mac = Query("mac"); mac = mac == null ? "" : mac; //Common.WriteMyLog("账号:" + userName + "Mac:" + mac); //int ret = (new SysUserBLL()).Login(userName, pwd); int ret = 0; dynamic objx = new ExpandoObject(); if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(pwd) && ret == 1) { byte[] data = System.Text.Encoding.UTF8.GetBytes("LeaderMIS:" + userName); string base64 = Convert.ToBase64String(data); objx.status = 1; objx.token = base64; objx.memo = "登陆成功"; Write(JsonConvert.SerializeObject(objx)); } else if (ret == 10) { objx.status = 10; objx.token = ""; objx.memo = "账号错误"; Write(JsonConvert.SerializeObject(objx)); } else if (ret == 11) { objx.status = 11; objx.token = ""; objx.memo = "密码错误"; Write(JsonConvert.SerializeObject(objx)); } else { objx.status = 0; objx.token = ""; objx.memo = "登陆异常"; Write(JsonConvert.SerializeObject(objx)); } } catch (Exception ex) { //Common.WriteMyLog(ex.ToString()); } } #endregion } }