/// <summary> /// 创建jwtToken /// </summary> /// <param name="username"></param> /// <param name="pwd"></param> /// <returns></returns> public ActionResult CreateToken(string username, string pwd) { DataResult result = new DataResult(); //假设用户名为"admin",密码为"123" if (username == "admin" && pwd == "123") { var payload = new Dictionary<string, object> { { "username",username }, { "pwd", pwd } }; result.Token = JwtHelp.SetJwtEncode(payload); result.Success = true; result.Message = "成功"; } else { result.Token = ""; result.Success = false; result.Message = "生成token失败"; } return Json(result,JsonRequestBehavior.AllowGet); }
public ActionResult Login(string account, string password) { IAdminManger adminManger = new AdminManger(); Guid adminid; var data = adminManger.Login(account, password, out adminid); Session["adminId"] = adminid; Session["account"] = account; DataResult result = new DataResult(); if (data) { var payload = new Dictionary <string, object> { { "account", account }, { "password", password } }; result.Token = JwtHelp.SetJwtEncode(payload); result.Success = true; result.Message = "成功"; } else { result.Token = ""; result.Success = false; result.Message = "生成token失败"; } return(Json(result)); }
public ActionResult CreateToken(string username, string pwd) { DataResult result = new DataResult(); //假设用户名为"admin",密码为"123" if (username == "admin" && pwd == "123") { var payload = new Dictionary <string, object> { { "UserCode", username }, { "LoginPWD", pwd }, { "LoginTime", DateTime.Now.AddMilliseconds(10) } }; result.Token = JwtHelp.SetJwtEncode(payload); result.Success = true; result.Message = "成功"; } else { result.Token = ""; result.Success = false; result.Message = "生成token失败"; } return(Json(result)); //get请求需要修改成这样 //return Json(result,JsonRequestBehavior.AllowGet); }
/// <summary> /// 设置Token /// </summary> /// <param name="userID"></param> /// <returns></returns> public static string SetToken(int userID) { Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("UserID", userID.ToString()); dic.Add("Role", "CommonUser"); return(JwtHelp.CreateJWT(dic, 120)); }
public ActionResult CreateToken(UserInfo userInfo) { if (userInfo.UserName == "admin" && userInfo.Pwd == "123") { var payload = new Dictionary <string, object> { { "username", userInfo.UserName }, { "pwd", userInfo.Pwd } }; return(Json(new { Token = JwtHelp.SetJwtEncode(payload) })); } return(Json(new { })); }
/// <summary> /// 生成token /// </summary> /// <param name="user"></param> /// <returns></returns> public ReturnBody <string> GenerateToken(GenerateTokenParam user) { ExceptionInfoEntity exception = WipLogHelper.GetExceptionInfo <GenerateTokenParam>(namespaceName, "GenerateToken", user); try { string token = JwtHelp.GenerateToken(user.Name, null, user.ExpDays); return(BLLHelpler.GetReturnBody <string>(ResCode.SUCCESS, ResMsg.SUCCESS, token)); } catch (Exception ex) { WipLogHelper.GetExceptionInfoForError(ex, ref exception); return(BLLHelpler.GetReturnBody <string>(ResCode.FAILURE, ResMsg.FAILURE, exception, "出现错误:" + ex.Message)); } }
/// <summary> /// 更新权限到Redis /// </summary> /// <param name="param"></param> /// <returns></returns> public ReturnBody <string> UpdateAuth() { ExceptionInfoEntity exception = WipLogHelper.GetExceptionInfo <string>(namespaceName, "UpdateAuth", "", "", ""); try { JwtHelp.UpdateAuthToRedis(); ReturnBody <string> ret = new ReturnBody <string>(); ret.resCode = ResCode.SUCCESS; return(ret); } catch (Exception ex) { WipLogHelper.GetExceptionInfoForError(ex, ref exception); return(BLLHelpler.GetReturnBody <string>(ResCode.FAILURE, ResMsg.FAILURE, exception)); } }
/// <summary> /// 从Token获取用户UserID /// </summary> /// <param name="token"></param> /// <returns></returns> public static int GetLoginUserID(string token) { if (string.IsNullOrEmpty(token)) { return(0); } var payload = JwtHelp.DecryptJWT(token); if (payload == null) { return(0); } if (payload.Where(p => p.Key == "Key").Count() == 0) { return(0); } return(Convert.ToInt32(payload.FirstOrDefault(p => p.Key == "UserID").Value)); }
/// <summary> /// 验证核心代码 /// </summary> /// <param name="httpContext"></param> /// <returns></returns> protected override bool AuthorizeCore(HttpContextBase httpContext) { //前端请求api时会将token存放在名为"auth"的请求头中 var authHeader = httpContext.Request.Headers["auth"]; if (authHeader == null) { return(false); } //请求参数 string requestTime = httpContext.Request["rtime"]; //请求时间经过DESC签名 //var ss = DESCryption.Encode(DateTime.Now.ToString()); if (string.IsNullOrEmpty(requestTime)) { return(false); } //请求时间RSA解密后加上时间戳的时间即该请求的有效时间 DateTime Requestdt = DateTime.Parse(DESCryption.Decode(requestTime)).AddMinutes(int.Parse(TimeStamp)); DateTime Newdt = DateTime.Now; //服务器接收请求的当前时间 if (Requestdt < Newdt) { return(false); } else { //进行其他操作 var userinfo = JwtHelp.GetJwtDecode(authHeader); //举个例子 生成jwtToken 存入redis中 //这个地方用jwtToken当作key 获取实体val 然后看看jwtToken根据redis是否一样 if (userinfo.UserName == "admin" && userinfo.Pwd == "123") { return(true); } } return(false); }
/// <summary> /// 初始化异常信息类(仅仅是获取异常信息对象) /// </summary> /// <typeparam name="T">入参类</typeparam> /// <param name="namespaceName">当前命名空间名</param> /// <param name="exceptionFun">方法名</param> /// <param name="param">入参类</param> /// <param name="exceptionSource">异常方向,默认是WIP接收</param> /// <param name="msgSource">消息来源,默认是WIPREST服务</param> /// <returns></returns> public static ExceptionInfoEntity GetExceptionInfo <T>(string namespaceName, string exceptionFun, T param, string key1 = "", string key2 = "", ExceptionSource exceptionSource = ExceptionSource.WIPReceive, ExceptionLevel exceptionLevel = ExceptionLevel.BusinessError , string msgSource = WipSource.WIPREST) { ExceptionInfoEntity exception = new ExceptionInfoEntity() { host = WIPCommon.GetHostName(msgSource), key1 = key1, key2 = key2, exceptionLevel = Convert.ToInt32(exceptionLevel).ToString(), //异常级别:默认是业务错误 exceptionFun = namespaceName + "." + exceptionFun, //异常方法名 exceptionSource = Convert.ToInt32(exceptionSource).ToString(), //异常方向 sourceData = JsonConvert.SerializeObject(param), //入参 creator = JwtHelp.GetCurUserName() }; return(exception); }
/// <summary> /// 获取权限 /// </summary> /// <param name="param"></param> /// <returns></returns> public ReturnBody <List <RedisModel> > GetAuth() { ExceptionInfoEntity exception = WipLogHelper.GetExceptionInfo <string>(namespaceName, "GetAuth", "", "", ""); try { List <RedisModel> redisModelList = new List <RedisModel>(); redisModelList = JwtHelp.GetAuthFormRedis(); ReturnBody <List <RedisModel> > ret = new ReturnBody <List <RedisModel> >(); ret.resCode = ResCode.SUCCESS; ret.resData = redisModelList; return(ret); } catch (Exception ex) { WipLogHelper.GetExceptionInfoForError(ex, ref exception); return(BLLHelpler.GetReturnBody <List <RedisModel> >(ResCode.FAILURE, ResMsg.FAILURE, exception)); } }
/// <summary> /// 删除代码项表 /// </summary> /// <param name="model"></param> /// <returns></returns> public ReturnBody <bool> EnableCodeItems(QueryCodeItemsModel model) { ExceptionInfoEntity exception = WipLogHelper.GetExceptionInfo <QueryCodeItemsModel>(namespaceName, "DelCodeItems", model); try { #region 验证 if (model == null || model.id == 0) { exception.exceptionMsg = ResMsg.PARAMETERNOEMPTY; return(BLLHelpler.GetReturnBody <bool>(ResCode.PARAMETERNOEMPTY, exception.exceptionMsg, exception)); } #endregion var result = codeItemsBLL.Enable(model.id.ToString(), model.delFlag, JwtHelp.GetCurUserName()); return(BLLHelpler.GetReturnBody <bool>(ResCode.SUCCESS, ResMsg.SUCCESS, result)); } catch (Exception ex) { WipLogHelper.GetExceptionInfoForError(ex, ref exception); return(BLLHelpler.GetReturnBody <bool>(ResCode.FAILURE, ResMsg.FAILURE, exception)); } }
/// <summary> /// 初始化打印数据对象 /// </summary> /// <typeparam name="T">json</typeparam> /// <param name="t"></param> /// <param name="printType">打印类型</param> /// <param name="processCardNumber">流转卡号</param> /// <param name="isOnlyPrint">是否仅仅是打印,不处理业务</param> /// <returns></returns> public bool Add <T>(T t, PrintType printType, string processCardNumber, bool isOnlyPrint, TransactionModel transModel = null) { try { PrintInfoEntity printInfo = new PrintInfoEntity() { processCardNumber = processCardNumber, printJson = JsonConvert.SerializeObject(t), delFlag = isOnlyPrint, printFlag = Convert.ToInt32(PrintStatus.ToPrint).ToString(),//代表初始 createTime = DateTime.Now, lastModifyTime = DateTime.Now, creator = JwtHelp.GetCurUserName(), lastModifier = JwtHelp.GetCurUserName(), printType = Convert.ToInt32(printType).ToString() }; return(dal.Add(printInfo, transModel) > 0 ? true : false); } catch (Exception) { throw; } }
/// <summary> /// 禁启用代码集表 /// </summary> /// <param name="model"></param> /// <returns></returns> public ReturnBody <bool> EnableCodeSets(QueryCodeSetsModel model) { ExceptionInfoEntity exception = WipLogHelper.GetExceptionInfo <QueryCodeSetsModel>(namespaceName, "EnableCodeSets", model); try { #region 验证 if (model == null || string.IsNullOrEmpty(model.code)) { exception.exceptionMsg = ResMsg.PARAMETERNOEMPTY; return(BLLHelpler.GetReturnBody <bool>(ResCode.PARAMETERNOEMPTY, exception.exceptionMsg, exception)); } #endregion string lastModifier = JwtHelp.GetCurUserName(); var result = codeSetsBLL.Enable(model.code.ToString(), model.delFlag, lastModifier); return(BLLHelpler.GetReturnBody <bool>(ResCode.SUCCESS, ResMsg.SUCCESS, result)); } catch (Exception ex) { WipLogHelper.GetExceptionInfoForError(ex, ref exception); return(BLLHelpler.GetReturnBody <bool>(ResCode.FAILURE, ResMsg.FAILURE, exception)); } }
/// <summary> /// 更新邮箱人员 /// </summary> /// <returns></returns> public ReturnBody <string> UpdateMailPerson(UpdateMailPersonParam param) { ExceptionInfoEntity exception = WipLogHelper.GetExceptionInfo <UpdateMailPersonParam>(namespaceName, "UpdateMailPerson", param, "", ""); try { MethodReturnResultModel ret = MailRuleBLL.GetInstance().UpdateMailPerson(param, JwtHelp.GetCurUserName()); if (ret != null && ret.IsSuccess) { return(BLLHelpler.GetReturnBody <string>(ResCode.SUCCESS, ResMsg.SUCCESS, "")); } else { return(BLLHelpler.GetReturnBody <string>(ResCode.FAILURE, ResMsg.FAILURE, "")); } } catch (Exception ex) { WipLogHelper.GetExceptionInfoForError(ex, ref exception); return(BLLHelpler.GetReturnBody <string>(ResCode.FAILURE, ResMsg.FAILURE, exception)); } }
/// <summary> /// 插入代码集表 /// </summary> /// <param name="model"></param> /// <returns></returns> public ReturnBody <string> InsertCodeSets(CodeSetsEntity model) { ReturnBody <string> retBody = null; ExceptionInfoEntity exception = WipLogHelper.GetExceptionInfo <CodeSetsEntity>(namespaceName, "InsertCodeSets", model); try { #region 验证 if (model == null) { exception.exceptionMsg = ResMsg.PARAMETERNOEMPTY; retBody = BLLHelpler.GetReturnBody <string>(ResCode.PARAMETERNOEMPTY, ResMsg.PARAMETERNOEMPTY, exception); return(retBody); } List <ColumnsModel> columnsList = new List <ColumnsModel>() { new ColumnsModel() { ChinaName = "代码编码", PropertyName = "code" }, new ColumnsModel() { ChinaName = "代码名称", PropertyName = "name" }, new ColumnsModel() { ChinaName = "说明", PropertyName = "note" }, new ColumnsModel() { ChinaName = "创建时间", PropertyName = "createTime", DataType = typeof(DateTime), IsNullable = true }, new ColumnsModel() { ChinaName = "修改时间", PropertyName = "lastModifyTime", DataType = typeof(DateTime), IsNullable = true }, }; ValidateResModel res = ValidateDataHelper.ValidateNullOrEmpty <CodeSetsEntity>(columnsList, model); if (res != null && !res.IsValidate) { exception.exceptionMsg = res.ValidateMsg; retBody = BLLHelpler.GetReturnBody <string>(ResCode.PARAMETERNOEMPTY, res.ValidateMsg, exception); return(retBody); } //验证重复 if (codeSetsBLL.Exists(model.code.ToString())) { exception.exceptionMsg = "数据已经存在"; retBody = BLLHelpler.GetReturnBody <string>(ResCode.FAILURE, exception.exceptionMsg, exception); return(retBody); } #endregion string creator = JwtHelp.GetCurUserName(); if (codeSetsBLL.Add(model, creator) > 0) { retBody = BLLHelpler.GetReturnBody <string>(ResCode.SUCCESS, ResMsg.SUCCESS); } else {//失败 exception.exceptionMsg = "保存数据失败"; retBody = BLLHelpler.GetReturnBody <string>(ResCode.FAILURE, exception.exceptionMsg, exception); } return(retBody); } catch (Exception ex) { WipLogHelper.GetExceptionInfoForError(ex, ref exception); retBody = BLLHelpler.GetReturnBody <string>(ResCode.FAILURE, ResMsg.FAILURE + ":" + ex.Message, exception); return(retBody); } }
public ReturnBody <LogonResult> canLogon(UserInfoLogon user) { String strMsg = string.Empty; try { // 暂时注释 //strMsg = "Login Success";//暂时写死 GEBF.BrilliantFactoryClient bfclient = new GEBF.BrilliantFactoryClient("BasicHttpBinding_IBrilliantFactory", GEBFUrl); bfclient.ClientCredentials.UserName.UserName = "******"; bfclient.ClientCredentials.UserName.Password = "******"; bfclient.CanLogin(user.Name, user.PassWord, out strMsg); //*/ WebHeaderCollection headers = WebOperationContext.Current.IncomingRequest.Headers; ReturnBody <LogonResult> res = new ReturnBody <LogonResult>(); res.resCode = "00000"; res.resMsg = "成功"; res.resData = new LogonResult(); if ("Login Success".Equals(strMsg)) { //异步更新内存中的权限 JwtHelp.UpdateAuthToRedis(); res.resData.isSuccess = true; res.resData.loginMessage = "登录成功"; res.resData.sendToken = JwtHelp.GenerateToken(user.Name, null); //headers["Authorization"]; // 根据用户至DB获取resource res.resData.resoruceMenu = new List <ResourceMenu>(); // 获取一级模块 List <ResourceMenu> menu3s = new List <ResourceMenu>(); List <ResourceMenu> menu2s = new List <ResourceMenu>(); List <WIP_Models.ResourceMenuInfo> rank1 = JwtHelp.getResourceMenuForVUE(user.Name, 1, ""); foreach (WIP_Models.ResourceMenuInfo r1 in rank1) { ResourceMenu menu1 = new ResourceMenu(); menu1.menuName = r1.menuName; menu1.menuLevel = "1"; menu1.menuDispSequence = r1.dispSequence; menu1.menuID = r1.dispSequence; menu1.url = r1.url; menu1.color = r1.color; menu1.icon = r1.icon; // 获取二级权限 List <WIP_Models.ResourceMenuInfo> rank2 = JwtHelp.getResourceMenuForVUE(user.Name, 2, r1.roleId); foreach (WIP_Models.ResourceMenuInfo r2 in rank2) { if (r2.menuName == "系统集成") { continue; } ResourceMenu menu2 = new ResourceMenu(); menu2.menuName = r2.menuName; menu2.menuLevel = "2"; menu2.menuDispSequence = r2.dispSequence; menu2.menuID = r2.dispSequence; menu2.url = r2.url; menu2.color = r2.color; menu2.icon = r2.icon; // 获取三级权限 List <WIP_Models.ResourceMenuInfo> rank3 = JwtHelp.getResourceMenuForVUE(user.Name, 3, r2.roleId); foreach (WIP_Models.ResourceMenuInfo r3 in rank3) { ResourceMenu menu3 = new ResourceMenu(); menu3.menuName = r3.menuName; menu3.menuLevel = "3"; menu3.menuDispSequence = r3.dispSequence; menu3.menuID = r3.dispSequence; menu3.url = r3.url; menu3.color = r3.color; menu3.icon = r3.icon; if (menu2.children == null) { menu2.children = new List <ResourceMenu>(); } menu2.children.Add(menu3); } menu2s.Add(menu2); if (menu1.children == null) { menu1.children = new List <ResourceMenu>(); } menu1.children.Add(menu2); } res.resData.resoruceMenu.Add(menu1); } // 返回数据 } else if ("User Name is Incorrect".Equals(strMsg)) { res.resData.isSuccess = false; res.resData.loginMessage = "用户名不存在或不匹配"; res.resData.sendToken = null; } else if ("Password is incorrect".Equals(strMsg)) { res.resData.isSuccess = false; res.resData.loginMessage = "请输入正确密码"; res.resData.sendToken = null; } else { res.resData.isSuccess = false; res.resData.loginMessage = "登录失败"; res.resData.sendToken = null; } return(res); } catch (Exception ex) { ReturnBody <LogonResult> res = new ReturnBody <LogonResult>(); res.resCode = "00001"; res.resMsg = ex.Message; return(res); } }