/// <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));
            }
        }
        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);
            }
        }