ZhiYeJianKang_PeiXun/PeiXun.Controllers/DefaultController.cs

157 lines
5.0 KiB
C#
Raw Permalink Normal View History

2025-02-20 15:41:53 +08:00
using CYQ.Data.Cache;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Text;
using Taurus.Core;
namespace PeiXun.Controllers
{
/// <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;
DistributedCache cache = DistributedCache.Instance;
//cache.Set("xxxx","12345678",1);
string token = controller.Query<string>("token");
bool result = false;
if (!string.IsNullOrEmpty(token))
{
result = token.ToUpper().StartsWith("XYL:");
string tokenX = "";
if (result)
{
tokenX = token.Substring(4);
}
if (cache.Get(tokenX) == null)
{
controller.Write("token 无效!", false);
return false;
}
//else
//controller.Write(cache.Get<string>(tokenX));
}
if (!result)
{
controller.Write("can't find token!", false);
}
return result;
}
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.ToUpper().StartsWith("XYL:");
}
if (!result)
{
Write("can't find token!", false);
}
return result;
}
//返回数据:
//status10账号错误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 obj = 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);
obj.status = 1;
obj.token = base64;
obj.memo = "登陆成功";
Write(JsonConvert.SerializeObject(obj));
}
else if (ret == 10)
{
obj.status = 10;
obj.token = "";
obj.memo = "账号错误";
Write(JsonConvert.SerializeObject(obj));
}
else if (ret == 11)
{
obj.status = 11;
obj.token = "";
obj.memo = "密码错误";
Write(JsonConvert.SerializeObject(obj));
}
else
{
obj.status = 0;
obj.token = "";
obj.memo = "登陆异常";
Write(JsonConvert.SerializeObject(obj));
}
}
catch (Exception ex)
{
//Common.WriteMyLog(ex.ToString());
}
}
#endregion
}
}