157 lines
5.0 KiB
C#
157 lines
5.0 KiB
C#
|
|
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;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//返回数据:
|
|||
|
|
//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 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
|
|||
|
|
}
|
|||
|
|
}
|