Пример #1
0
        protected static SqlConnection getDb0Connection()
        {
            string        connectionstring = LogicCenter.GetDB0ConnectionString(CommWebSetup.DB0_CodeString); //取得連線字串
            SqlConnection connection       = new SqlConnection(connectionstring);

            return(connection);
        }
Пример #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            LogicCenter lg = new LogicCenter("SR-NetWeb,sa,jcin@4257386~");

            //var t = lg.GetShareBySales("M002", null);
            //var s = JsonConvert.SerializeObject(t);
        }
Пример #3
0
        protected virtual LogicCenter openLogic()
        {
            LogicCenter dbLogic = new LogicCenter(CommSetup.CommWebSetup.DB0_CodeString);

            dbLogic.IP = System.Web.HttpContext.Current.Request.UserHostAddress;

            return(dbLogic);
        }
Пример #4
0
        public bool EditUser(UserEditViewModel user, out string resultCode)
        {
            // 修改User角色權限Func
            Action <string, IEnumerable <RolesViewModel> > editUserRoles = (userNo, userRoles) =>
            {
                userRoles = userRoles.OrderBy(r => r.ROLE_ID).ToList();
                var o_user_role = _unitOfWork.Db.HRMT25.Where(u => u.USER_NO == userNo).OrderBy(r => r.ROLE_ID).ToList();
                if (!LogicCenter.IsTheSame(
                        userRoles,
                        o_user_role,
                        (ur, our) => ur.ROLE_ID == our.ROLE_ID))
                {
                    _unitOfWork.Db.HRMT25.RemoveRange(o_user_role);
                    _unitOfWork.Db.HRMT25.AddRange(userRoles.Select(ur => new HRMT25()
                    {
                        ROLE_ID    = ur.ROLE_ID,
                        USER_NO    = userNo,
                        CHG_DATE   = DateTime.Now,
                        CHG_PERSON = user.CHG_PERSON,
                        DEFAULT_YN = ""
                    }));
                }
            };

            try
            {
                // update user infos
                var o_user = _userRepo.Get(u => u.USER_NO == user.USER_NO).FirstOrDefault();
                if (o_user == null)
                {
                    resultCode = "notFindUser";
                    return(false);
                }

                if (string.IsNullOrEmpty(user.PHOTO)) // 圖片沒換就不更新,一樣使用舊圖
                {
                    user.PHOTO = o_user.PHOTO;
                }

                var n_user = _mapper.Map <UserEditViewModel, HRMT01>(user, o_user);
                n_user.CHG_DATE   = DateTime.Now;
                n_user.CHG_PERSON = user.CHG_PERSON;
                // update user roles
                // only checked role to update
                editUserRoles(user.USER_NO, user.Roles.Where(r => r.CHECKED == true));

                _unitOfWork.Db.SaveChanges();

                resultCode = "edit user success";
            }
            catch (Exception ex)
            {
                resultCode = ex.Message;
                return(false);
            }

            return(true);
        }
Пример #5
0
        public IActionResult Login(string returnUrl, LogInModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            UserProfile findUser = _userService.LogIn(model, out string resultCode);

            if (findUser == null)
            {
                ModelState.AddModelError("LoginError", _localizer[resultCode].Value);
                return(View(model));
            }

            // 要存的資訊: 看要存字串還是json
            var claims = new List <Claim>()
            {
                new Claim(ClaimTypes.Name, findUser.USER_NO),
                new Claim(ClaimTypes.NameIdentifier, findUser.USER_NO),
                new Claim(ClaimTypes.MobilePhone, findUser.PHONE ?? "")
            };
            var roles = findUser.Roles
                        .Select(r => new Claim(ClaimTypes.Role, LogicCenter.GetEnumName(r.ROLE_ID)));

            var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);

            identity.AddClaims(claims);
            identity.AddClaims(roles);
            // 製作身分驗證Cookie
            var principal = new ClaimsPrincipal(identity);

            if (model.RememberMe)
            {
                HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal,
                                        new AuthenticationProperties {
                    IsPersistent = true
                });
            }
            else
            {
                // 過期時間
                var timeSpanOffset = DateTimeOffset.UtcNow.AddMinutes(30);

                HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal,
                                        new AuthenticationProperties {
                    IsPersistent = true, ExpiresUtc = timeSpanOffset
                });
            }

            return(Redirect(returnUrl ?? Url.Action("Index", "Home")));
        }
Пример #6
0
        public IActionResult Login(string returnUrl, LogInModel model)
        {
            UserProfile findUser = _userService.LogIn(model, out string resultCode);

            if (findUser == null)
            {
                return(Ok(model));
            }

            // 要存的資訊
            var claims = new List <Claim>()
            {
                new Claim(ClaimTypes.Name, findUser.USER_NO),
                new Claim(ClaimTypes.NameIdentifier, findUser.USER_NO),
                new Claim(ClaimTypes.MobilePhone, findUser.PHONE ?? "")
            };
            var roles = findUser.Roles
                        .Select(r => new Claim(ClaimTypes.Role, LogicCenter.GetEnumName(r.ROLE_ID)));

            claims.AddRange(roles);

            // Json Web Token 登入
            var token = new System.IdentityModel.Tokens.Jwt.JwtSecurityToken
                        (
                issuer: Configuration["Tokens:ValidIssuer"],
                audience: Configuration["Tokens:ValidAudience"],
                claims: claims,
                expires: DateTime.UtcNow.AddHours(1),    /* 過期時間 */
                signingCredentials: new SigningCredentials(new SymmetricSecurityKey
                                                               (System.Text.Encoding.UTF8.GetBytes(Configuration["Tokens:IssuerSigningKey"])),
                                                           SecurityAlgorithms.HmacSha256)
                        );

            string tokenString = new JwtSecurityTokenHandler().WriteToken(token);

            return(Ok(
                       new {
                user = findUser,
                token = tokenString
            }));
        }
        public override IEnumerable <DynamicNode> GetDynamicNodeCollection(ISiteMapNode nodes)
        {
            var is_tablet = (new WebInfo()).isTablet();

            //var returnValue = new List<DynamicNode>();

            LogicCenter          log = new LogicCenter(CommWebSetup.DB0_CodeString);
            C47A0_JDMaskEntities db  = LogicCenter.getDB0;

            try
            {
                LogicCenter.SetDB0EntityString(CommSetup.CommWebSetup.DB0_CodeString);
                IList <DynamicNode> colle_node = new List <DynamicNode>();
                //if (!is_tablet)
                //{
                #region PC Menu
                var items        = db.Menu.Where(x => x.is_use == true && x.is_only_tablet == false).ToList();
                var folder_items = items.Where(x => x.is_folder == true).OrderBy(x => x.sort);

                foreach (var item in folder_items)
                {
                    DynamicNode folder_node = new DynamicNode();

                    folder_node.Title = item.menu_name;
                    folder_node.Key   = item.menu_id.ToString();
                    //dynamicNode.RouteValues.Add("genreId", item.menu_id); //製作連結參數
                    folder_node.Area = item.area;
                    folder_node.Attributes.Add("IconClass", item.icon_class);
                    folder_node.Clickable = false;

                    folder_node.Roles.Add("Admins");

                    var get_roles = item.AspNetRoles.Select(x => x.Name);

                    foreach (var role_name in get_roles)
                    {
                        folder_node.Roles.Add(role_name);
                    }

                    colle_node.Add(folder_node);
                    var sub_items = items.Where(x => x.parent_menu_id == item.menu_id).OrderBy(x => x.sort);
                    foreach (var sub_item in sub_items)
                    {
                        DynamicNode subNode = new DynamicNode();

                        subNode.Title     = sub_item.menu_name;
                        subNode.ParentKey = folder_node.Key;
                        //dynamicNode.RouteValues.Add("genreId", item.menu_id); //製作連結參數
                        if (!string.IsNullOrEmpty(sub_item.area))
                        {
                            subNode.Area = sub_item.area;
                        }
                        subNode.Controller = sub_item.controller;
                        subNode.Action     = sub_item.action;
                        subNode.Clickable  = true;
                        subNode.Roles.Add("Admins");

                        var get_sub_roles = sub_item.AspNetRoles.Select(x => x.Name);

                        foreach (var role_name in get_sub_roles)
                        {
                            subNode.Roles.Add(role_name);
                        }

                        colle_node.Add(subNode);
                    }
                }
                #endregion
                //}
                //else
                //{
                //    #region Tablet
                //    var items = db.Menu
                //        .Where(x => x.is_use == true && x.is_on_tablet == true)
                //        .ToList();

                //    foreach (var item in items)
                //    {
                //        DynamicNode item_node = new DynamicNode();

                //        item_node.Title = item.menu_name;
                //        item_node.Key = item.menu_id.ToString();
                //        //dynamicNode.RouteValues.Add("genreId", item.menu_id); //製作連結參數
                //        item_node.Area = item.area;
                //        item_node.Controller = item.controller;
                //        item_node.Action = item.action;
                //        //item_node.Attributes.Add("IconClass", item.icon_class);
                //        item_node.Clickable = true;
                //        //yield return item_node;
                //        colle_node.Add(item_node);
                //    }
                //    #endregion
                //}
                return(colle_node);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }
            finally
            {
                db.Dispose();
            }
        }
Пример #8
0
 protected static C43A0_Mani520Entities getDB0()
 {
     LogicCenter.SetDB0EntityString(CommSetup.CommWebSetup.DB0_CodeString);
     return(LogicCenter.getDB0);
 }
Пример #9
0
        private void button1_Click(object sender, EventArgs e)
        {
            LogicCenter lg = new LogicCenter("SR-NetWeb,sa,jcin@4257386~");

            // lg.SettleCal(2015, 10);
        }
Пример #10
0
        public static ApplicationDbContext Create()
        {
            string connstr = LogicCenter.GetDB0ConnectionString(CommSetup.CommWebSetup.DB0_CodeString);

            return(new ApplicationDbContext(connstr));
        }
Пример #11
0
 protected static C34A1_SYM_MotorEntities getDB0()
 {
     LogicCenter.SetDB0EntityString(CommSetup.CommWebSetup.DB0_CodeString);
     return(LogicCenter.getDB0);
 }
Пример #12
0
 protected static C591613_TylynaEntities getDB0()
 {
     LogicCenter.SetDB0EntityString(CommWebSetup.DB0_CodeString); //取得連線字串
     return(LogicCenter.getDB0);
 }