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); }
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); //} }
/// <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; } }
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); }
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); }
public UserSessionController(AuthUtil authUtil) : base(authUtil) { user = _authUtil.GetCurrentUser(); }