/// <summary> /// 权限验证方法,返回权限对象 /// </summary> /// <param name="action"></param> /// <returns></returns> public YD_Sys_Power SafePowerPage(string action) { if (!IsLogin()) { return(null); } if (action == null) { return(null); } var module = new YD_Sys_Module(); //带有参数的链接将参数去掉 if (action.Contains("?")) { action = action.Substring(0, action.IndexOf('?')); } action = action.EndsWith("/") ? action.Substring(0, action.Length - 1) : action; using (var yunEntities = new IYunEntities()) { var modules = yunEntities.YD_Sys_Module.Where(u => true).ToList(); for (var i = 0; i < modules.Count(); i++) { var moduleName = modules[i].y_url; //带有参数的链接将参数去掉 if (moduleName.Contains("/?")) { moduleName = moduleName.Substring(0, moduleName.IndexOf("/?")); } //带有/结尾的链接将/去掉 if (moduleName.EndsWith("/")) { moduleName = moduleName.Substring(0, moduleName.Length - 1); } if (moduleName.ToLower() != action.ToLower()) { continue; } module = modules[i]; break; } return(module == null ? null : yunEntities.YD_Sys_Power.FirstOrDefault( u => u.y_moduleID == module.id && u.y_roleID == YdAdminRoleId)); } }
/// <summary> /// 对栏目内具体方法的权限验证 /// </summary> /// <returns></returns> public YD_Sys_Power SafePowerAction() { if (!IsLogin()) { return(null); } if (Request.UrlReferrer == null) { return(null); } var module = new YD_Sys_Module(); var url = Request.UrlReferrer.AbsolutePath; using (var yunEntities = new IYunEntities()) { var modules = yunEntities.YD_Sys_Module.Where(u => true).ToList(); for (var i = 0; i < modules.Count(); i++) { var moduleName = modules[i].y_url; //带有参数的链接将参数去掉 if (moduleName.Contains("/?")) { moduleName = moduleName.Substring(0, moduleName.IndexOf("/?")); } //带有/结尾的链接将/去掉 if (moduleName.EndsWith("/")) { moduleName = moduleName.Substring(0, moduleName.Length - 1); } if (moduleName.ToLower() != url.ToLower()) { continue; } module = modules[i]; break; } return(module == null ? null : yunEntities.YD_Sys_Power.FirstOrDefault( u => u.y_moduleID == module.id && u.y_roleID == YdAdminRoleId)); } }
/// <summary> /// 权限验证方法,返回权限验证信息 /// </summary> /// <param name="action">需要验证的栏目url(例:/SysAdmin/Site)</param> /// <param name="flag">需要验证的栏目权限(枚举)</param> /// <returns>返回权限验证信息(枚举)</returns> public PowerInfo Safe(string action, PowerFlag flag) { if (!IsLogin()) { return(PowerInfo.NoLogin); } if (action == null) { return(PowerInfo.Unknow); } var module = new YD_Sys_Module(); //带有参数的链接将参数去掉 if (action.Contains("/?")) { action = action.Substring(0, action.IndexOf("/?")); } action = action.EndsWith("/") ? action.Substring(0, action.Length - 1) : action; using (var yunEntities = new IYunEntities()) { var modules = yunEntities.YD_Sys_Module.Where(u => true).ToList(); for (var i = 0; i < modules.Count(); i++) { var moduleName = modules[i].y_url; //带有参数的链接将参数去掉 if (moduleName.Contains("/?")) { moduleName = moduleName.Substring(0, moduleName.IndexOf("/?")); } //带有/结尾的链接将/去掉 if (moduleName.EndsWith("/")) { moduleName = moduleName.Substring(0, moduleName.Length - 1); } if (moduleName.ToLower() != action.ToLower()) { continue; } module = modules[i]; break; } if (module == null) { return(PowerInfo.Unknow); } var power = yunEntities.YD_Sys_Power.FirstOrDefault(u => u.y_moduleID == module.id && u.y_roleID == YdAdminRoleId); if (power == null) { return(PowerInfo.NoPower); } switch (flag) { case PowerFlag.Delete: return(power.y_delete == (int)PowerState.Able ? PowerInfo.HasPower : PowerInfo.NoPower); case PowerFlag.Insert: return(power.y_insert == (int)PowerState.Able ? PowerInfo.HasPower : PowerInfo.NoPower); case PowerFlag.Menu: return(power.y_menu == (int)PowerState.Able ? PowerInfo.HasPower : PowerInfo.NoPower); case PowerFlag.Select: return(power.y_select == (int)PowerState.Able ? PowerInfo.HasPower : PowerInfo.NoPower); case PowerFlag.Update: return(power.y_update == (int)PowerState.Able ? PowerInfo.HasPower : PowerInfo.NoPower); default: return(PowerInfo.Unknow); } } }