示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="configPath"></param>
        public static void Configure(string configPath, string basePath)
        {
            if (!string.IsNullOrEmpty(basePath))
            {
                configPath = Path.Combine(basePath, configPath);
            }
            else
            {
                configPath = Path.Combine(AppContext.BaseDirectory, configPath);
            }
            FileInfo file = new FileInfo(configPath);

            if (file.Exists)
            {
                ILoggerRepository repository = LogManager.CreateRepository("NETCoreRepository");
                log4net.Config.XmlConfigurator.ConfigureAndWatch(repository, file);

                SysLog       = LogManager.GetLogger(repository.Name, "SystemLogger");
                ExceptionLog = LogManager.GetLogger(repository.Name, "ExceptionLogger");

                WaLiuBasicServiceLog = LogManager.GetLogger(repository.Name, "WaLiuBasicServiceLogger");
                ApiMonitorLog        = LogManager.GetLogger(repository.Name, "ApiMonitorLogger");
                SysLog.Info($"初始化{configPath}完成。");
            }
            else
            {
                throw new Exception($"未找到{file.FullName}文件");
            }
        }
示例#2
0
文件: Log4Context.cs 项目: zdlian/DMS
        /// <summary>
        ///
        /// </summary>
        /// <param name="configPath"></param>
        public static void Configure(string configPath)
        {
            FileInfo          file       = new FileInfo(configPath);
            ILoggerRepository repository = LogManager.CreateRepository("NETCoreRepository");

            log4net.Config.XmlConfigurator.ConfigureAndWatch(repository, file);

            SysLog               = LogManager.GetLogger(repository.Name, "SystemLogger");
            ExceptionLog         = LogManager.GetLogger(repository.Name, "ExceptionLogger");
            WaLiuBasicServiceLog = LogManager.GetLogger(repository.Name, "WaLiuBasicServiceLogger");
            ApiMonitorLog        = LogManager.GetLogger(repository.Name, "ApiMonitorLogger");
            SysLog.Info($"初始化{configPath}完成。");
        }
示例#3
0
        public IActionResult Info([FromBody] JObject value)
        {
            Dictionary <string, object> d = value.ToObject <Dictionary <string, object> >();
            Dictionary <string, object> r = new Dictionary <string, object>();

            try
            {
                string tokenUserId = UIDP.UTILITY.AccessTokenTool.GetUserId(d["token"].ToString());
                string userID      = tokenUserId;
                //string _loginType = "";
                //if (d["loginType"].ToString()==null|| d["loginType"].ToString() == "")
                //{
                //    _loginType = loginType;
                //}
                //else
                //{
                //    loginType = d["loginType"].ToString();
                //}
                if (d.Keys.Contains("userId") && d["userId"] != null && d["userId"].ToString() != "")
                {
                    userID = d["userId"].ToString();
                }
                if (userID == mm.getAdminCode())
                {
                    //if (tokenUserId == mm.getAdminCode()&&(d["userId"]==null|| d["userId"].ToString()=="")){
                    SysLog log = new SysLog();
                    log.Info(DateTime.Now, tokenUserId, "系统超级管理员", ClientIp, 0, "info", "", 1);
                    return(Json(new
                    {
                        code = 2000,
                        message = "",
                        roles = JsonConvert.DeserializeObject("['admin']"),
                        name = "系统超级管理员",
                        userCode = tokenUserId,
                        token = d["token"].ToString(),
                        introduction = "",
                        avatar = "",
                        sysCode = "1",
                        sysName = mm.getSysName(),
                        userId = tokenUserId,
                        userSex = 0,
                        departCode = "",
                        departName = "",
                        userType = "0",
                        //loginType= loginType
                    }));
                }
                //string token = UIDP.UTILITY.AccessTokenTool.GetAccessToken(d["userId"].ToString());
                string token = UIDP.UTILITY.AccessTokenTool.GetAccessToken(userID);
                //DataTable dt = mm.GetUserAndOrgByUserId(d["userId"].ToString());
                DataTable dt = mm.GetUserAndOrgByUserId(userID);
                //DataTable du = mm.getSysTime();
                if (dt != null && dt.Rows.Count > 0)
                {
                    string _name     = dt.Rows[0]["USER_NAME"] == null ? "" : dt.Rows[0]["USER_NAME"].ToString();
                    string _userCode = dt.Rows[0]["USER_DOMAIN"] == null ? "" : dt.Rows[0]["USER_DOMAIN"].ToString();
                    string _userId   = dt.Rows[0]["USER_ID"] == null ? "" : dt.Rows[0]["USER_ID"].ToString();
                    int    _userSex  = Convert.ToInt32(dt.Rows[0]["USER_SEX"].ToString());
                    string _deptCode = dt.Rows[0]["ORG_CODE"] == null ? "" : dt.Rows[0]["ORG_CODE"].ToString();
                    string _deptName = dt.Rows[0]["ORG_SHORT_NAME"] == null ? "" : dt.Rows[0]["ORG_SHORT_NAME"].ToString();
                    string _userType = dt.Rows[0]["USER_TYPE"] == null ? "" : dt.Rows[0]["USER_TYPE"].ToString();
                    string _orgCode  = dt.Rows[0]["ORG_CODE"] == null ? "" : dt.Rows[0]["ORG_CODE"].ToString();
                    //string _sysTime = du.Rows[0]["SysOperateDate"] == null ? "" : du.Rows[0]["SysOperateDate"].ToString();
                    string _orgName = dt.Rows[0]["ORG_NAME"] == null ? "" : dt.Rows[0]["ORG_NAME"].ToString();
                    SysLog log      = new SysLog();
                    //log.Info(DateTime.Now, d["userId"].ToString(), _name, ClientIp, 0, "info", "",1);
                    log.Info(DateTime.Now, userID, _name, ClientIp, 0, "info", "", 1);
                    return(Json(new
                    {
                        code = 2000,
                        message = "",
                        roles = new Dictionary <string, object>(),
                        token = token,
                        introduction = "",
                        avatar = "",
                        name = _name,
                        userCode = _userCode,
                        sysCode = "1",
                        sysName = mm.getSysName(),
                        userId = _userId,
                        userSex = _userSex,
                        departCode = _deptCode,
                        departName = _deptName,
                        userType = _userType,
                        orgCode = _orgCode,
                        orgName = _orgName,
                        //sysTime =_sysTime,
                        // loginType = loginType
                    }));
                }
                return(Json(new
                {
                    code = 2000,
                    message = "",
                    roles = "",
                    name = "",
                    userCode = "",
                    token = token,
                    introduction = "",
                    avatar = "",
                    sysCode = "1",
                    sysName = mm.getSysName(),
                    userId = "",
                    userSex = 0,
                    departCode = "",
                    departName = "",
                    userType = "0",
                    orgCode = "",
                    orgName = "",
                    //sysTime = "",
                    // loginType = loginType
                }));
            }
            catch (Exception ex)
            {
                r["code"]    = -1;
                r["message"] = ex.Message;
            }
            return(Json(r));
        }
示例#4
0
        public IActionResult loginByUsernames([FromBody] JObject value)
        {
            string userId   = "";
            string userName = "";

            try
            {
                Dictionary <string, object> d = value.ToObject <Dictionary <string, object> >();
                string username = d["username"] == null ? "" : d["username"].ToString();
                string password = d["password"] == null ? "" : d["password"].ToString();
                if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
                {
                    return(Json(new { code = -1, message = "用户名或密码不能为空!" }));
                }
                UserModule mm = new UserModule();
                userId = mm.getAdminCode();
                string pass = mm.getAdminPass();
                if ((username == userId))
                {
                    if (password != pass)
                    {
                        return(Json(new { code = -1, message = "管理员密码不正确!" }));
                    }
                    userName = "******";
                    string accessToken = AccessTokenTool.GetAccessToken(userId);
                    UIDP.UTILITY.AccessTokenTool.DeleteToken(userId);
                    UIDP.UTILITY.AccessTokenTool.InsertToken(userId, accessToken, DateTime.Now.AddHours(1));
                    log.Info(DateTime.Now, userId, userName, Extension.GetClientUserIp(Request.HttpContext), 2, "LogIn", "", 1);
                    return(Json(new
                    {
                        code = 2000,
                        message = "",
                        token = accessToken,
                        orgList = new DataTable(),
                        userList = new DataTable(),
                        roleLevel = "admin"
                    }));
                }
                else
                {
                    UserLoginModule um = new UserLoginModule();
                    if (d["userDomain"].ToString() == "PTR_IDENT")
                    {
                        var builder = new ConfigurationBuilder()
                                      .SetBasePath(Directory.GetCurrentDirectory())
                                      .AddJsonFile("appsettings.json");
                        Configuration = builder.Build();
                        string            LDAPPATH   = Configuration["LdapPath"];
                        DirectoryEntry    entry      = new DirectoryEntry(LDAPPATH, username, password);
                        DirectorySearcher mySearcher = new DirectorySearcher(entry);
                        mySearcher.Filter = "(SAMAccountName=" + username + ")";
                        SearchResult result = mySearcher.FindOne();
                        if (result == null)
                        {
                            throw new Exception("用户认证错误");
                        }
                        else
                        {
                            DataTable userdt = um.getUserInfoByName(username);
                            if (userdt == null || userdt.Rows.Count == 0)
                            {
                                return(Json(new { code = -1, message = "本地用户不存在,请同步用户信息!" }));
                            }
                            Dictionary <string, object> dinfo = new Dictionary <string, object>();
                            if (password != userdt.Rows[0]["USER_PASS"].ToString())
                            {
                                //dinfo["password"] = userdt.Rows[0]["USER_PASS"].ToString();
                                dinfo["newpassword"] = password;
                                dinfo["userid"]      = userdt.Rows[0]["USER_ID"].ToString();
                                mm.updatePTRpass(dinfo);
                            }
                        }
                    }

                    DataTable dt = um.getUserInfoByName(username);
                    if (dt == null || dt.Rows.Count == 0)
                    {
                        return(Json(new { code = -1, message = "此用户不存在!" }));
                    }
                    password = UIDP.Security.SecurityHelper.StringToMD5Hash(password);
                    if (password != dt.Rows[0]["USER_PASS"].ToString())
                    {
                        return(Json(new { code = -1, message = "密码错误!" }));
                    }
                    userId = dt.Rows[0]["USER_ID"].ToString();
                    //userName = dt.Rows[0]["LOGIN_REMARK"].ToString();
                    string accessToken = AccessTokenTool.GetAccessToken(userId);
                    UIDP.UTILITY.AccessTokenTool.DeleteToken(userId);
                    UIDP.UTILITY.AccessTokenTool.InsertToken(userId, accessToken, DateTime.Now.AddHours(1));
                    DataTable dtUser = um.getLoginByID(userId);
                    int       level  = 1;
                    if (Extension.GetClientUserIp(Request.HttpContext).ToString() != dt.Rows[0]["USER_IP"].ToString())
                    {
                        level = 2;
                    }
                    log.Info(DateTime.Now, userId, userName, Extension.GetClientUserIp(Request.HttpContext), 2, "LogIn", "", level);
                    return(Json(new
                    {
                        code = 2000,
                        message = "",
                        token = accessToken,
                        orgList = new DataTable(),
                        userList = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(dtUser)),
                        roleLevel = ""
                    }));
                }
            }
            catch (Exception ex)
            {
                log.Info(DateTime.Now, userId, userName, Extension.GetClientUserIp(Request.HttpContext), 1, "LogIn", ex.Message.Length > 120 ? ex.Message.Substring(0, 100) : ex.Message, 1);
                return(Json(new { code = -1, message = "登录时程序发生错误" + ex.Message }));
            }
        }
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            try
            {
                Microsoft.Extensions.Primitives.StringValues AccessToken;//获取header中某一项的值
                context.HttpContext.Request.Headers.TryGetValue("X-Token", out AccessToken);
                ClientIp   = Extension.GetClientUserIp(Request.HttpContext);
                actionName = (context.RouteData.Values["action"]).ToString().ToLower();//获取当前方法
                if (actionName == "loginconfig" || actionName == "getcolor")
                {
                    base.OnActionExecuting(context); return;
                }
                //根据实际需求进行具体实现
                accessToken = AccessToken;
                if (accessToken == "")
                {
                    context.Result = new ObjectResult(new { code = 50008, msg = "没有找到X-Token" });
                }
                string userId = UIDP.UTILITY.AccessTokenTool.GetUserId(AccessToken);
                UserId = userId;
                if (actionName == "info")
                {
                    UIDP.UTILITY.Message mes = UIDP.UTILITY.AccessTokenTool.IsInValidUser(userId, AccessToken, "user");
                    if (mes.code != 2000)
                    {
                        context.Result = new ObjectResult(mes);
                    }
                }
                else
                {
                    UserModule mm         = new UserModule();
                    string     admin      = mm.getAdminCode();
                    string     cloudadmin = mm.getCloudCode();
                    if (userId == admin)
                    {
                        UserName = "******";
                    }
                    else if (userId == cloudadmin)
                    {
                        UserName = "******";
                    }
                    else
                    {
                        admin    = "";
                        UserName = mm.getUserInfoByUserId(userId).USER_NAME;
                    }
                    UIDP.UTILITY.Message mes = UIDP.UTILITY.AccessTokenTool.IsInValidUser(userId, AccessToken, admin);
                    if (mes.code != 2000)
                    {
                        context.Result = new ObjectResult(mes);
                    }
                }
                SysLog log = new SysLog();
                log.Info(DateTime.Now, userId, UserName, ClientIp, 0, actionName, "", 1);
            }
            catch (Exception ex)
            {
                SysLog log = new SysLog();
                log.Info(DateTime.Now, UserId, UserName, ClientIp, 1, actionName, ex.Message.Length > 120 ? ex.Message.Substring(0, 100) : ex.Message, 1);
                context.Result = new ObjectResult(new { code = -1, msg = "验证token时程序出错", result = ex.Message });
            }
            #region 备份原来的逻辑

            /*
             * public override void OnActionExecuting(ActionExecutingContext context)
             * {
             *  try
             *  {
             *      Microsoft.Extensions.Primitives.StringValues AccessToken;//获取header中某一项的值
             *      context.HttpContext.Request.Headers.TryGetValue("X-Token", out AccessToken);
             *
             *      actionName = (context.RouteData.Values["action"]).ToString().ToLower();//获取当前方法
             *      //根据实际需求进行具体实现
             *      accessToken = AccessToken;
             *      if (accessToken == "")
             *      {
             *          context.Result = new ObjectResult(new { code = 50008, msg = "没有找到X-Token" });
             *      }
             *      string userId = UIDP.UTILITY.AccessTokenTool.GetUserId(AccessToken);
             *      BIZModule.UserModule mm = new BIZModule.UserModule();
             *      string admin = mm.getAdminCode();
             *      if (userId == admin)
             *      {
             *          UserName = "******";
             *      }
             *      else
             *      {
             *          UserName = mm.getUserInfoByUserId(userId).USER_NAME;
             *      }
             *      UIDP.UTILITY.Message mes = UIDP.UTILITY.AccessTokenTool.IsInValidUser(userId, AccessToken,admin);
             *      if (mes.code != 2000)
             *      {
             *          context.Result = new ObjectResult(mes);
             *      }
             *      UserId = userId;
             *      ClientIp = Extension.GetClientUserIp(Request.HttpContext);
             *      UIDP.LOG.SysLog log = new LOG.SysLog();
             *      log.Info(DateTime.Now, userId, UserName, ClientIp, 0, actionName, "");
             *  }
             *  catch (Exception ex)
             *  {
             *      UIDP.LOG.SysLog log = new LOG.SysLog();
             *      log.Info(DateTime.Now, UserId, UserName, ClientIp, 1, actionName, ex.Message.Length > 120 ? ex.Message.Substring(0, 100) : ex.Message);
             *      context.Result = new ObjectResult(new { code = -1, msg = "验证token时程序出错", result = ex.Message });
             *  }
             *
             * }
             */
            #endregion
        }