Example #1
0
        /// <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));
        }
Example #3
0
        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);
        }
Example #4
0
        /// <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));
        }
Example #5
0
        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));
            }
        }
Example #8
0
        /// <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);
        }
Example #10
0
        /// <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));
            }
        }
Example #12
0
        /// <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));
            }
        }
Example #13
0
 /// <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;
     }
 }
Example #14
0
        /// <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));
            }
        }
Example #15
0
        /// <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));
            }
        }
Example #16
0
        /// <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);
            }
        }