129 lines
4.2 KiB
C#
129 lines
4.2 KiB
C#
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
|
||
/// <summary>
|
||
/// 默认控制器(此类不要动,partial类,可以在AriesController文件夹外建立自己的业务类)
|
||
/// </summary>
|
||
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处理
|
||
/// <summary>
|
||
/// 重写此方法时,此CheckToken的优先级>DefaultController中的静态方法CheckToken
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public override bool CheckToken()
|
||
{
|
||
string token = Query<string>("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<string>("un");
|
||
string pwd = Query<string>("pwd");
|
||
string mac = Query<string>("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
|
||
}
|
||
}
|