Esempio n. 1
0
        public UserWithAccessedCtrls GetAccessedControls(string username)
        {
            var service = Create(username);
            var user    = new UserWithAccessedCtrls
            {
                User      = service.User,
                Orgs      = service.Orgs,
                Modules   = service.Modules.OrderBy(u => u.SortNo).ToList().MapToList <ModuleView>(),
                Resources = service.Resources,
                Roles     = service.Roles
            };

            var ModuleElements = service.ModuleElements;

            foreach (var moduleView in user.Modules)
            {
                if (moduleView.Code == "User")
                {
                    var list = ModuleElements.Where(u => u.ModuleId == moduleView.Id).OrderBy(u => u.Sort).ToList();
                }
                moduleView.Elements = ModuleElements.Where(u => u.ModuleId == moduleView.Id).OrderBy(u => u.Sort).ToList();
            }

            return(user);
        }
Esempio n. 2
0
        protected string Actionname;       //当前Action小写名称

        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);

            if (!AuthUtil.CheckLogin())
            {
                return;
            }

            Controllername = Request.RequestContext.RouteData.Values["controller"].ToString().ToLower();
            Actionname     = filterContext.ActionDescriptor.ActionName.ToLower();

            var function = this.GetType().GetMethods().FirstOrDefault(u => u.Name.ToLower() == Actionname);

            if (function == null)
            {
                throw new Exception("未能找到Action");
            }

            var authorize = function.GetCustomAttribute(typeof(AuthenticateAttribute));

            CurrentModule = AuthUtil.GetCurrentUser().Modules.FirstOrDefault(u => u.Url.ToLower().Contains(Controllername));
            //当前登录用户没有Action记录&&Action有authenticate标识
            if (authorize != null && CurrentModule == null)
            {
                filterContext.Result = new RedirectResult("/Login/Index");
                return;
            }
            userCurrent = new Infrastructure.Cache.ObjCacheProvider <UserWithAccessedCtrls>().GetCache("userCard");
            if (userCurrent == null)
            {
                App.Response.UserWithAccessedCtrls user = App.SSO.AuthUtil.GetCurrentUser();
                if (user == null)
                {
                    filterContext.Result = new RedirectResult("/Login/Index");
                    return;
                }
                new Infrastructure.Cache.ObjCacheProvider <UserWithAccessedCtrls>().Create("userCard", user, DateTime.Now.AddHours(1));
                userCurrent = user;
            }

            //var version = ConfigurationManager.AppSettings["version"];
            //if (version == "demo" && Request.HttpMethod == "POST")
            //{
            //    throw new HttpException(400, "演示版本,不能进行该操作,当前模块:" + Controllername + "/" + Actionname);
            //}
        }
Esempio n. 3
0
        /// <summary>
        /// 获取当前登录的用户信息
        /// <para>通过URL中的Token参数或Cookie中的Token</para>
        /// </summary>
        /// <param name="otherInfo">The otherInfo.</param>
        /// <returns>LoginUserVM.</returns>
        public UserWithAccessedCtrls GetCurrentUser(string otherInfo = "")
        {
            try
            {
                var userctrls = new UserWithAccessedCtrls();
                var user      = _objCacheProvider.GetCache(GetToken());
                if (user != null)
                {
                    userctrls = _app.GetAccessedControls(user.Account);
                }

                return(userctrls);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 4
0
        public Response <string> GetUserAndDeptName(string token, string requestid = "")
        {
            var result = new Response <string>();

            try
            {
                var user = _objCacheProvider.GetCache(token);
                if (user != null)
                {
                    UserWithAccessedCtrls temp = _app.GetAccessedControls(user.Account);
                    result.Result = temp.User.Name + "|" + temp.Orgs[0].Name;
                }
            }
            catch (Exception ex)
            {
                result.Code    = 500;
                result.Message = ex.Message;
            }

            return(result);
        }
Esempio n. 5
0
        public UserWithAccessedCtrls GetAccessedControls(string username)
        {
            var service = _factory.Create(username);
            var user    = new UserWithAccessedCtrls
            {
                User      = service.User,
                Orgs      = service.Orgs,
                Modules   = service.Modules.MapToList <ModuleView>(),
                Resources = service.Resources,
                Roles     = service.Roles
            };

            foreach (var moduleView in user.Modules)
            {
                moduleView.Elements =
                    service.ModuleElements.Where(u => u.ModuleId == moduleView.Id).OrderBy(u => u.Sort).ToList();
            }

            user.ModuleWithChildren = user.Modules.GenerateTree(c => c.Id, c => c.ParentId);

            return(user);
        }
Esempio n. 6
0
 public UserSessionController(AuthUtil authUtil) : base(authUtil)
 {
     user = _authUtil.GetCurrentUser();
 }