Beispiel #1
0
 /// <summary>
 /// 加载指定系统用户
 /// <param name="userId">用户编号</param>
 /// </summary>
 public void Load(string userId)
 {
     try
     {
         TSUser tsUser = tsUserDAO.Get(userId);
         tsUser.status  = "1".Equals(tsUser.status) ? "on" : "off";
         tsUser.roleIds = "'" + tsUser.roleIds.Replace(",", "','") + "'";
         List <TSRole> listRole = new TSRoleDAO().GetList("select * from TSRole where status='1' and roleId in (" + tsUser.roleIds + ")", new Param());
         tsUser.roleIds = "";
         foreach (TSRole tsRole in listRole)
         {
             if (string.IsNullOrWhiteSpace(tsUser.roleIds))
             {
                 tsUser.roleIds = tsRole.roleId;
             }
             else
             {
                 tsUser.roleIds += "," + tsRole.roleId;
             }
         }
         WebJson.ToJson(context, tsUser);
     }
     catch (Exception e)
     {
         Message.error(context, e.Message);
     }
 }
Beispiel #2
0
        /// <summary>
        /// 获取系统用户
        /// </summary>
        /// <param name="userId">用户登录名</param>
        /// <returns>系统用户对象</returns>
        public virtual TSUser GetTSUser(string USERCODE)
        {
            TSUser tsUser = null;

            try
            {
                string strSQL = "select * from TSUser where USERCODE=@USERCODE";
                Param  param  = new Param();
                param.Clear();
                param.Add("@USERCODE", USERCODE);
                db.Open();
                ComDataReader dr = db.ExecuteReader(CommandType.Text, strSQL, param);
                if (dr.Read())
                {
                    tsUser = ReadData(dr);
                }
                dr.Close();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                db.Close();
            }
            return(tsUser);
        }
        public async Task <ActionResult> Delete([FromBody] TSUser tsUser)
        {
            string UserID = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "UserID", 10);
            await TS.AddActivityLog(UserID, "delete user", MethodBase.GetCurrentMethod());

            SymmKeyAndIV ClientSymmKeyAndIV = new SymmKeyAndIV();

            ClientSymmKeyAndIV.Key = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "ClientSymmKey", 5);
            ClientSymmKeyAndIV.IV  = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "ClientSymmIV", 10);

            if (!ClientSymmKeyAndIV.Key.Equals("Error"))
            {
                GlobalFunctions.CmdDecryptEntitySymm(tsUser, ClientSymmKeyAndIV);

                bool b = await TS.DeleteUser(tsUser);

                if (b)
                {
                    return(Ok());
                }
                else
                {
                    return(UnprocessableEntity());
                }
            }
            else
            {
                return(BadRequest("Can't get crypto key!"));
            }
        }
        public async Task <ActionResult> Delete([FromBody] TSTodo TSTodo)
        {
            string userID   = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "UserID", 10);
            string userName = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "UserName", 10);

            await TS.AddActivityLog(userID, "delete todo", MethodBase.GetCurrentMethod());

            GlobalFunctions.CmdDecryptEntityAsymm(TSTodo);

            bool b = await TS.DeleteTodo(TSTodo);

            if (b)
            {
                TSUser currUser = new TSUser()
                {
                    UserID   = userID,
                    UserName = userName,
                };

                await TS.UpdateUserTodosCount(currUser, 1);

                await TS.UpdateSettingCounter("AllUsers", "TodosCount", false);

                return(Ok("OK"));
            }
            else
            {
                return(Ok("Error:Can't add new todo!"));
            }
        }
        public async Task <ActionResult> Post([FromBody] TSUser tsUser)
        {
            string UserID = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "UserID", 10);

            await TS.AddActivityLog(UserID, "post user", MethodBase.GetCurrentMethod());


            GlobalFunctions.CmdDecryptEntityAsymm(tsUser);


            bool b = TS.DeleteExpiredEmaiedCodes().Result;


            string MachineID = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "MachineID", 10);

            string IPAddress = HttpContext.Connection.RemoteIpAddress.ToString();



            TSEmailedCodeEntity emailedCode = TS.FindEmaiedCode(tsUser.Email, IPAddress, MachineID).Result;

            if (emailedCode != null)
            {
                if (emailedCode.Code.ToLower().Equals(tsUser.EmailedCode))
                {
                    await TS.DeleteEmaiedCodes(tsUser.Email);

                    tsUser.UserID = await TS.GetNewID("AllUsers", "LastUserID", true);

                    tsUser.CreateDate = DateTime.Now;


                    b = await TS.AddUser(tsUser);

                    if (b)
                    {
                        await TS.UpdateSettingCounter("AllUsers", "UsersCount", true);


                        await GlobalFunctions.NotifyAdmin("New user");

                        return(Ok("OK"));
                    }
                    else
                    {
                        return(Ok("Error:Can't add new user!"));
                    }
                }
                else
                {
                    return(Ok("Error:Emailed code is not correct!"));
                }
            }
            else
            {
                await TS.AddErrorLog("AllUsers", "EmaiedCode expected but not found", MethodBase.GetCurrentMethod());

                return(Ok("Error:Server can't find emailed code to compare!"));
            }
        }
Beispiel #6
0
        public async Task <bool> UpdateUser(TSUser tsUser, bool KeepPassAndSalt, List <string> CallTrace)
        {
            try
            {
                CosmosDocUser newUser = new CosmosDocUser(tsUser);

                if (KeepPassAndSalt)
                {
                    CosmosDocUser oldUser = await GetUserDoc(tsUser, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod()));

                    newUser.Salt           = oldUser.Salt;
                    newUser.HashedPassword = oldUser.HashedPassword;
                }
                else
                {
                    newUser.Salt           = GlobalFunctions.GetSalt();
                    newUser.HashedPassword = GlobalFunctions.CmdHashPasswordBytes(tsUser.Password, newUser.Salt);
                }



                await cosmosDBClientBase.UpdateItemAsync(newUser, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod()));


                return(true);
            }
            catch (CosmosException ex)
            {
                await CosmosAPI.cosmosDBClientError.AddErrorLog(tsUser.ID, ex.Message, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod()));

                return(false);
            }
        }
Beispiel #7
0
        public async Task CmdChangePassword()
        {
            IsButtonDisabled = true;
            StateHasChanged();

            Validate();


            if (LocalFunctions.HasError())
            {
                LocalFunctions.DisplayErrors();
            }
            else
            {
                TSUser tsUser = new TSUser()
                {
                    Email       = LocalData.CurrTSUser.Email,
                    Password    = NewPassword,
                    EmailedCode = EmailedCode,
                };



                await WebApi.CmdUserChangePassword(tsUser);
            }


            IsButtonDisabled = false;
        }
Beispiel #8
0
        /// <summary>
        /// 获取系统用户
        /// <param name="userId">用户编号</param>
        /// </summary>
        /// <returns>系统用户对象</returns>
        public TSUser Get(string userId)
        {
            TSUser tsUser = null;

            try
            {
                string strSQL = "select * from TSUser where userId=:userId";
                Param  param  = new Param();
                param.Clear();
                param.Add(":userId", userId);
                db.Open();
                ComDataReader dr = db.ExecuteReader(CommandType.Text, strSQL, param);
                if (dr.Read())
                {
                    tsUser = ReadData(dr);
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                db.Close();
            }
            return(tsUser);
        }
Beispiel #9
0
        public async Task <ActionResult> Delete(
            [HttpTrigger(AuthorizationLevel.Anonymous, "delete", Route = "User/delete")] HttpRequest req,
            ILogger log)
        {
            TSUser tsUser = await MyFromBody <TSUser> .FromBody(req, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));


            ClaimsPrincipal User = MyTokenValidator.Authenticate(req, AllowedRoles, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));


            Guid UserID = Guid.Parse(LocalFunctions.CmdGetValueFromClaim(User.Claims, "UserID", 10, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())));
            await CosmosAPI.cosmosDBClientActivity.AddActivityLog(UserID, "delete user", TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));



            bool b = await CosmosAPI.cosmosDBClientUser.DeleteUser(tsUser, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));

            if (b)
            {
                return(new OkResult());
            }
            else
            {
                return(new UnprocessableEntityResult());
            }
        }
Beispiel #10
0
        public Model.APIResult GetLoginUserInfo(string strUserCode, string strPassward)
        {
            Model.APIResult result = new Model.APIResult();
            try
            {
                //获取用户信息
                List <TSUser> tsUserList = new TSUserDAO().GetList("userCode", strUserCode);
                if (tsUserList.Count != 1)
                {
                    result.Data    = null;
                    result.Message = "没有查询到用户的登录信息!";
                    result.Result  = 101;
                }

                TSUser tsUser = tsUserList[0];
                if (!tsUser.userPwd.Equals(Encrypt.ConvertPwd(tsUser.userId, strPassward)))
                {
                    result.Data    = null;
                    result.Message = "用户名与密码不匹配!";
                    result.Result  = 102;
                }
                else if (!"1".Equals(tsUser.status))
                {
                    result.Data    = null;
                    result.Message = "该用户帐号已停用!";
                    result.Result  = 103;
                }

                //获取部门信息
                TSDept tsDept = new TSDeptDAO().Get(tsUser.deptId);
                if (tsDept == null)
                {
                    result.Data    = null;
                    result.Message = "该用户所属部门不存在!";
                    result.Result  = 104;
                }
                else if (!"1".Equals(tsDept.status))
                {
                    result.Data    = null;
                    result.Message = "该用户所属部门已停用!";
                    result.Result  = 105;
                }

                GetModuleInfo(tsUser);

                result.Data    = tsUser;
                result.Message = "获取用户信息成功!";
                result.Result  = 100;
            }
            catch (Exception ex)
            {
                result.Data    = null;
                result.Message = "获取用户信息失败:" + ex.Message;
                result.Result  = 0;
            }
            return(result);
        }
 public TSUserEntity(TSUser tsUser)
 {
     PartitionKey = tsUser.UserID;
     RowKey       = tsUser.UserName.ToLower();
     Email        = tsUser.Email.ToLower();
     FullName     = tsUser.FullName;
     IsLive       = tsUser.IsLive;
     CreateDate   = tsUser.CreateDate;
     TodosCount   = tsUser.TodosCount;
 }
Beispiel #12
0
        public async Task <bool> UpdateUserTodosCount(TSUser tsUser, int change, List <string> CallTrace)
        {
            TSUser result = await GetUser(tsUser, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod()));

            result.TodosCount += change;

            await UpdateUser(result, true, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod()));

            return(true);
        }
Beispiel #13
0
        public async Task <ActionResult> ChangePassword(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "user/changepassword")] HttpRequest req,
            ILogger log)
        {
            TSUser tsUser = await MyFromBody <TSUser> .FromBody(req, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));

            ClaimsPrincipal User = MyTokenValidator.Authenticate(req, AllowedRoles, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));

            Guid UserID = Guid.Parse(LocalFunctions.CmdGetValueFromClaim(User.Claims, "UserID", 10, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())));
            await CosmosAPI.cosmosDBClientActivity.AddActivityLog(UserID, "change password", TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));


            string MachineID = LocalFunctions.CmdGetValueFromClaim(User.Claims, "MachineID", 10, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));

            string IPAddress = req.HttpContext.Connection.RemoteIpAddress.ToString();



            CosmosEmailedCode emailedCode = await CosmosAPI.cosmosDBClientEmailedCode.FindEmaiedCode(tsUser.Email, IPAddress, MachineID, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));

            if (emailedCode != null)
            {
                if (emailedCode.Code.ToLower().Equals(tsUser.EmailedCode))
                {
                    await CosmosAPI.cosmosDBClientEmailedCode.DeleteEmailedCodes(tsUser.Email, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));


                    TSUser currUser = (await CosmosAPI.cosmosDBClientUser.FindUserByID(UserID, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()))).toTSUser();

                    currUser.Password = tsUser.Password;


                    if (await CosmosAPI.cosmosDBClientUser.UpdateUser(currUser, false, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())))
                    {
                        return(new OkObjectResult("OK"));
                    }
                    else
                    {
                        return(new OkObjectResult("Error:Can't add new user!"));
                    }
                }
                else
                {
                    return(new OkObjectResult("Error:Emailed code is not correct!"));
                }
            }
            else
            {
                await CosmosAPI.cosmosDBClientError.AddErrorLog(Guid.Empty, "EmaiedCode expected but not found", TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));

                return(new OkObjectResult("Error:Server can't find emailed code to compare!"));
            }
        }
        public async Task <bool> SendTodoReminders(List <string> CallTrace)
        {
            try
            {
                IEnumerable <CosmosDocTodo> result = await cosmosDBRepo.GetItemsAsync(x => x.DocType == (int)DocTypeEnum.Todo &&
                                                                                      x.UserID != CosmosAPI.DemoUserID && !x.IsReminderEmailed &&
                                                                                      x.HasRemindDate && x.RemindDate < DateTime.Now,
                                                                                      LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod()));



                if (result.Any())
                {
                    bool   b    = false;
                    string body = string.Empty;
                    foreach (var item in result)
                    {
                        TSUser currUser = await CosmosAPI.cosmosDBClientUser.GetUser(item.UserID, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod()));

                        if (currUser != null)
                        {
                            item.IsReminderEmailed = true;


                            TSEmail tmpEmail = new TSEmail()
                            {
                                To            = currUser.Email,
                                OperationCode = 4,
                            };

                            body     = "Name - " + item.Name + "\n\nDescription - " + item.Description + "\n\nDuedate - " + item.DueDate.ToString("MM/dd/yyyy HH:mm:ss.fff") + ".";
                            tmpEmail = LocalFunctions.SendEmail(tmpEmail, string.Empty, body,
                                                                LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())).Result;


                            b = UpdateTodoEntity(item, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod())).Result;
                        }
                    }
                }
            }
            catch (CosmosException ex)
            {
                await CosmosAPI.cosmosDBClientError.AddErrorLog(Guid.Empty, ex.Message, LocalFunctions.AddThisCaller(CallTrace, MethodBase.GetCurrentMethod()));

                return(false);
            }


            return(true);
        }
Beispiel #15
0
        ///<summary>
        ///登录系统
        ///</summary>
        /// <param name="context">HTTP请求上下文</param>
        /// <param name="userCode">用户名称</param>
        /// <param name="userPwd">用户密码</param>
        public void Login(System.Web.HttpContext context, string userCode, string userPwd)
        {
            //获取用户信息
            List <TSUser> tsUserList = new TSUserDAO().GetList("userCode", userCode);

            if (tsUserList.Count != 1)
            {
                Message.error(context, "帐号错误");
                return;
            }

            TSUser tsUser = tsUserList[0];

            if (!tsUser.userPwd.Equals(Encrypt.ConvertPwd(tsUser.userId, userPwd)))
            {
                Message.error(context, "密码错误");
                return;
            }
            else if (!"1".Equals(tsUser.status))
            {
                Message.error(context, "帐号停用");
                return;
            }

            //获取部门信息
            TSDept tsDept = new TSDeptDAO().Get(tsUser.deptId);

            if (tsDept == null)
            {
                Message.error(context, "用户所属部门不存在");
                return;
            }
            else if (!"1".Equals(tsDept.status))
            {
                Message.error(context, "用户所属部门停用");
                return;
            }

            //设置登录信息
            this.userId   = tsUser.userId;
            this.userName = tsUser.userName;
            this.roleIds  = tsUser.roleIds;
            this.deptId   = tsUser.deptId;
            this.deptName = tsDept.deptName;

            //会话保存登录用户信息
            context.Session["clientUser"] = this;
            Message.success(context, "success");//成功返回
        }
Beispiel #16
0
        /// <summary>
        /// 读取系统用户信息
        /// </summary>
        /// <param name="dr">记录指针</param>
        /// <returns>系统用户对象</returns>
        protected virtual TSUser ReadData(ComDataReader dr)
        {
            TSUser tsUser = new TSUser();

            tsUser.userId    = dr["userId"].ToString();    //用户编号
            tsUser.userName  = dr["userName"].ToString();  //用户姓名
            tsUser.userCode  = dr["userCode"].ToString();  //用户帐号
            tsUser.userPwd   = dr["userPwd"].ToString();   //用户密码
            tsUser.roleIds   = dr["roleIds"].ToString();   //角色编号
            tsUser.deptId    = dr["deptId"].ToString();    //部门编号
            tsUser.status    = dr["status"].ToString();    //使用状态
            tsUser.post      = dr["post"].ToString();      //职务
            tsUser.telephone = dr["telephone"].ToString(); //联系电话
            return(tsUser);
        }
        public CosmosDocUser(TSUser tsUser)
        {
            ID         = tsUser.ID;
            UserName   = tsUser.UserName?.ToLower();
            Email      = tsUser.Email?.ToLower();
            FullName   = tsUser.FullName;
            IsLive     = tsUser.IsLive;
            CreateDate = tsUser.CreateDate;
            TodosCount = tsUser.TodosCount;
            LangID     = tsUser.LangID;


            DocType = (int)DocTypeEnum.User;
            GeneratePK();
        }
        public async Task <ActionResult <TSStat> > Get(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "stat")] HttpRequest req,
            ILogger log)
        {
            await CosmosAPI.cosmosDBClientSetting.SetSetting(Guid.Empty, "LatsStatRequest", "ts", TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));

            ClaimsPrincipal User = MyTokenValidator.Authenticate(req, AllowedRoles, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));

            if (User != null)
            {
                Guid   userID   = Guid.Parse(LocalFunctions.CmdGetValueFromClaim(User.Claims, "UserID", 10, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod())));
                string userName = LocalFunctions.CmdGetValueFromClaim(User.Claims, "UserName", 10, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));

                if (!userID.Equals(Guid.Empty))
                {
                    if (!userName.Equals("demouser"))
                    {
                        TSUser tsUser = await CosmosAPI.cosmosDBClientUser.GetUser(new TSUser { ID = userID }, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));

                        if (tsUser != null)
                        {
                            if (!tsUser.IsLive)
                            {
                                tsUser.IsLive = true;
                                await CosmosAPI.cosmosDBClientUser.UpdateUser(tsUser, true, TodosCosmos.LocalFunctions.AddThisCaller(new List <string>(), MethodBase.GetCurrentMethod()));
                            }
                        }
                    }
                }
            }

            TSStat stat = new TSStat
            {
                IPsCount       = await GetStat("IPAddressesCount"),
                VisitsCount    = await GetStat("VisitsCount"),
                UsersCount     = await GetStat("UsersCount"),
                LiveUsersCount = await GetStat("LiveUsersCount"),
                TodosCount     = await GetStat("TodosCount"),
                LikesCount     = await GetStat("LikesCount"),
                DislikesCount  = await GetStat("DislikesCount"),
                FeedbackCount  = await GetStat("FeedbackCount"),
            };



            return(stat);
            // return new OkObjectResult(JsonSerializer.ToString(stat));
        }
Beispiel #19
0
 /// <summary>
 /// 增加系统用户
 /// <param name="tsUser">系统用户</param>
 /// </summary>
 public void Add(TSUser tsUser)
 {
     try
     {
         db.Open();
         Add(db, tsUser);
     }
     catch (Exception e)
     {
         throw e;
     }
     finally
     {
         db.Close();
     }
 }
Beispiel #20
0
 /// <summary>
 /// 修改系统用户
 /// </summary>
 /// <param name="tsUser">系统用户</param>
 public virtual void Edit(TSUser tsUser)
 {
     try
     {
         db.Open();
         Edit(db, tsUser);
     }
     catch (Exception e)
     {
         throw e;
     }
     finally
     {
         db.Close();
     }
 }
Beispiel #21
0
        public static async Task <bool> CmdRegisterUser(TSUser ParTSUser)
        {
            string a = await WebApiFunctions.CmdTSUserRegister(ParTSUser);

            if (a.Equals("OK"))
            {
                LocalFunctions.Authorize(ParTSUser.UserName, ParTSUser.Password);

                return(true);
            }
            else
            {
                LocalFunctions.AddError(a, MethodBase.GetCurrentMethod(), true, false);
                return(false);
            }
        }
Beispiel #22
0
        private void LoadTSUsers()
        {
            try
            {
                listTSUser.Clear();
                TerminalServicesManager tsManager = new TerminalServicesManager();
                string[] massHosts = new string[] { "TS1", "TS2", "TS3", "TS4", "TS5", "TS6", "TS7" };

                foreach (var host in massHosts)
                {
                    using (ITerminalServer server = tsManager.GetRemoteServer(host))
                    {
                        server.Open();
                        foreach (ITerminalServicesSession session in server.GetSessions())
                        {
                            NTAccount account = session.UserAccount;
                            if (account != null)
                            {
                                TSUser user = new TSUser()
                                {
                                    DomainName        = session.DomainName,
                                    PCName            = session.ClientName,
                                    TSName            = host,
                                    UserName          = session.UserName,
                                    ConnectionState   = session.ConnectionState.ToString(),
                                    WindowStationName = session.WindowStationName,
                                    UserAccount       = account.ToString(),
                                };
                                Dispatcher.Invoke((Action)(() =>
                                {
                                    listTSUser.Add(user);
                                }));
                            }
                        }
                    }
                }

                foreach (var user in listTSUser)
                {
                    user.ClientIPAddress = (from i in listPcIPAndPcName where i.PcName.ToLower() == user.PCName.ToLower() select i.PcIP).FirstOrDefault();
                }
            }
            catch (Exception ex)
            {
                Bindings.StatusBarText = ex.Message;
            }
        }
Beispiel #23
0
        /// <summary>
        /// 修改系统用户【修改】
        /// <param name="data">数据库连接</param>
        /// <param name="tsUser">系统用户</param>
        /// </summary>
        public override void Edit(DataAccess data, TSUser tsUser)
        {
            string strSQL = "update TSUser set userName=@userName,userCode=@userCode,roleIds=@roleIds,deptId=@deptId,status=@status,post=@post,telephone=@telephone where userId=@userId";
            Param  param  = new Param();

            param.Clear();
            param.Add("@userName", tsUser.userName);   //用户姓名
            param.Add("@userCode", tsUser.userCode);   //用户帐号
            //param.Add("@userPwd", tsUser.userPwd);//用户密码
            param.Add("@roleIds", tsUser.roleIds);     //角色编号
            param.Add("@deptId", tsUser.deptId);       //部门编号
            param.Add("@status", tsUser.status);       //使用状态
            param.Add("@post", tsUser.post);           //职务
            param.Add("@telephone", tsUser.telephone); //联系电话
            param.Add("@userId", tsUser.userId);       //用户编号
            data.ExecuteNonQuery(CommandType.Text, strSQL, param);
        }
Beispiel #24
0
        protected DataAccess db = new DataAccess(DataAccess.DBConn);//数据库连接

        #region 代码生成器自动生成


        /// <summary>
        /// 增加系统用户
        /// </summary>
        /// <param name="data">数据库连接</param>
        /// <param name="tsUser">系统用户</param>
        public virtual void Add(DataAccess data, TSUser tsUser)
        {
            string strSQL = "insert into TSUser (userId,userName,userCode,userPwd,roleIds,deptId,status,post,telephone) values (@userId,@userName,@userCode,@userPwd,@roleIds,@deptId,@status,@post,@telephone)";
            Param  param  = new Param();

            param.Clear();
            param.Add("@userId", tsUser.userId);       //用户编号
            param.Add("@userName", tsUser.userName);   //用户姓名
            param.Add("@userCode", tsUser.userCode);   //用户帐号
            param.Add("@userPwd", tsUser.userPwd);     //用户密码
            param.Add("@roleIds", tsUser.roleIds);     //角色编号
            param.Add("@deptId", tsUser.deptId);       //部门编号
            param.Add("@status", tsUser.status);       //使用状态
            param.Add("@post", tsUser.post);           //职务
            param.Add("@telephone", tsUser.telephone); //联系电话
            data.ExecuteNonQuery(CommandType.Text, strSQL, param);
        }
Beispiel #25
0
        /// <summary>
        /// 重置密码
        /// </summary>
        /// <param name="userId"></param>
        public void PwdReset(string userId)
        {
            TSUser tsUser = tsUserDAO.Get(userId);

            try
            {
                string password = Encrypt.ConvertPwd(tsUser.userId, tsUser.userCode);
                tsUserDAO.ChangePwd(tsUser.userId, password);
                Message.success(context, "用户密码重置成功");
                loginSession.Log(tsUser.userName + "[" + tsUser.userId + "]用户密码重置成功");
            }
            catch (Exception e)
            {
                Message.error(context, "用户修改失败");
                loginSession.Log(e.Message);
            }
        }
        public async Task <ActionResult <TSUser> > Authorize([FromBody] TSUser tsUser)
        {
            string UserID = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "UserID", 10);
            await TS.AddActivityLog(UserID, "Requested authentication", MethodBase.GetCurrentMethod());

            TSUser result = new TSUser();

            SymmKeyAndIV ClientSymmKeyAndIV = new SymmKeyAndIV
            {
                Key = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "ClientSymmKey", 5),
                IV  = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "ClientSymmIV", 10)
            };


            if (!string.IsNullOrEmpty(ClientSymmKeyAndIV.Key))
            {
                GlobalFunctions.CmdDecryptEntityAsymm(tsUser);

                tsUser.UserID = GlobalFunctions.CmdGetValueFromClaim(User.Claims, "UserID", 10);

                result = TS.GetUser(tsUser).Result;

                if (!string.IsNullOrEmpty(result.UserID))
                {
                    await GlobalFunctions.NotifyAdmin("New login " + result.UserName);

                    await TS.UpdateSettingCounter("AllUsers", "LiveUsersCount", true);

                    GlobalFunctions.CmdEncryptEntitySymm(result, ClientSymmKeyAndIV);
                }
                else
                {
                    result.UserName = "******";
                    result.FullName = "Can't find user!";
                    GlobalFunctions.CmdEncryptEntitySymm(result, ClientSymmKeyAndIV);
                }
            }
            else
            {
                result.UserName = "******";
                result.FullName = "Can't get crypto key!";
            }

            return(result);
        }
Beispiel #27
0
        public static async Task <bool> CmdUserChangePassword(TSUser ParTSUser)
        {
            string a = await WebApiFunctions.CmdTSUserChangePassword(ParTSUser);

            if (a.Equals("OK"))
            {
                LocalFunctions.AddMessage("Password was changed successfully, please login again", true, false);
                LocalData.btModal.Close();
                LocalFunctions.Logout();

                return(true);
            }
            else
            {
                LocalFunctions.AddError(a, MethodBase.GetCurrentMethod(), true, false);
                return(false);
            }
        }
Beispiel #28
0
        public static async Task <string> CmdTSUserChangePassword(TSUser ParTSUser)
        {
            httpClient.DefaultRequestHeaders.Accept.Clear();
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", LocalData.CurrJWT);

            GlobalFunctions.CmdTrimEntity(ParTSUser);

            TSUser tsUserForSend = GlobalFunctions.CopyObject <TSUser>(ParTSUser);



            string result = await httpClient.PostJsonAsync <string>("user/changepassword", tsUserForSend);

            httpClient.DefaultRequestHeaders.Accept.Clear();


            return(result);
        }
Beispiel #29
0
        public static async Task <TSUser> CmdTSUserAuthorize(TSUser ParTSUser)
        {
            httpClient.DefaultRequestHeaders.Accept.Clear();
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", LocalData.CurrJWT);
            try
            {
                TSUser result = await httpClient.MyPostJsonGetJsonAsync("user/authorize", ParTSUser);


                GlobalFunctions.CmdAdjustDate(result, false);

                return(result);
            }
            catch (Exception ex)
            {
                LocalFunctions.AddError(ex.Message, MethodBase.GetCurrentMethod(), true, false);
            }

            return(new TSUser());
        }
        //public Startup(IConfiguration configuration, ILogger<Startup> logger)
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
            //_logger = logger;

            //_logger.LogInformation("Added TodoRepository to services");
            GlobalFunctions.CmdReadEncryptedSettings();

            TS = new TableStorage();
            bool b = TS.EnuserTables().Result;

            TSUserEntity demoUser = TS.FindUser("DemoUser", false, string.Empty).Result;

            if (demoUser is null)
            {
                TSUser newUser = new TSUser()
                {
                    Email      = "*****@*****.**",
                    Password   = "******",
                    FullName   = "Demo User",
                    UserName   = "******",
                    UserID     = TS.GetNewID("AllUsers", "LastUserID", true).Result,
                    CreateDate = DateTime.Now,
                };

                DemoUserID = newUser.UserID;
                b          = TS.AddUser(newUser).Result;
            }
            else
            {
                DemoUserID = demoUser.PartitionKey;
            }

            b = TS.AddActivityLog("AllUser", "Server started", MethodBase.GetCurrentMethod()).Result;


            _timerUserUpdater = new Timer(DoWorkUserUpdater, null, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(10));
            _timerReminder    = new Timer(DoWorkReminder, null, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(1));
        }