MVC+ajax权限管理
不喜欢说废话,直接了当:
1、控制器
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
public ActionResult GetRoleList()
{
return View();
} public string GetListF(int id)
{
List<CM_Menu> list= _menuService.GetListF(id);
string html = "";
if (list.Count > )
{
foreach (var item in list)
{
html += "<li><button onclick=GetMenu(" + item.Id + ") class='button'>" + item.Name + "</button>";
}
}
return html;
}
/// <summary>
/// 子菜单加载(权限)
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public string GetListSon(int id)
{
//权限判断
CM_Info_Role roleModel = Session["InfoRole"] as CM_Info_Role;
string role = roleModel.Role;
List<CM_Menu> list= _menuService.GetListSon(id);
string html = "";
if (list.Count > )
{
for (int i = ; i < list.Count;i++ )
{
int temp = Convert.ToInt32(list[i].ShowName.Replace("role", "").Trim());
if (role.Substring(temp, ) == "")
{
html += "<li><a href='" + list[i].URL + "' target='_blank' >" + list[i].Name + "</a></li>";
}
else
{
html += "";
}
}
}
return html;
}
2、ajax
function bodyonload() //加载的是父ID为0的,即最主要的菜单
{
var data = 0;
$.ajax({
type: 'post',
async: false,
data: { id: data },
url: '/Menu/GetListF',
dataType: 'html',
success: function (json, textStatus) {
$("#MenuListF").append(json);
},
complete: function (XMLHttpRequest, textStatus) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$.messager.alert("失败提示", textStatus);
}
});
//GetMenu(0);//初始化加载0的
} function GetMenu(fid)//获取
{
$.ajax({
type: 'post',
async: false,
data: { id: fid },
url: '/Menu/GetListSon',
dataType: 'html',
success: function (json, textStatus) {
//if (!$("#MenuListSon").has("li").length) {
// $("#MenuListSon").append(json);
//}
//else {
$("#MenuListSon > *").remove();
$("#MenuListSon").append(json);
//}
},
complete: function (XMLHttpRequest, textStatus) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$.messager.alert("失败提示", textStatus);
}
});
}
3、页面
<div id="head_wrap" class="container_12">
<div id="logo" class="grid_4">
<h1><span>logo</span></h1>
</div>
<div id="controlpanel" class="grid_8">
<ul>
<li><p><strong>你好,用户名</strong></p></li>
</ul>
</div>
<div id="navigation" class=" grid_12">
<ul id="MenuListF">
</ul>
</div>
</div><!-- end headwarp -->
在大神面前来说,这就是个菜,但是加载这个菜单的时候,可能因为新手的缘故,对自己解决问题还是挺满意的。
解释一下:
控制器里面其实就是输出html字符串,ajax里面的就是加载一下这个字符串。页面调用显示
int temp = Convert.ToInt32(list[i].ShowName.Replace("role", "").Trim());
if (role.Substring(temp, ) == "")
{
html += "<li><a href='" + list[i].URL + "' target='_blank' >" + list[i].Name + "</a></li>";
}
else
{
html += "";
}
这里其实就是我的权限判断了,我觉得这样做的话后台代码也没有那么容易暴露,因为这个权限是基于 User、Menu、Role做的,我觉得这个思路就是这个样子
MVC+ajax权限管理的更多相关文章
- MVC之权限管理-网站开发之路
一.前言 刚到公司没多长时间就开始接触MVC到现在不能说懂了,只能说到达会用这个层次吧,感觉MVC用来写Web还是很强大的,层次清晰. 今天我来写写关于权限管理这一块,自我感觉网站的权限主要分为菜单权 ...
- MVC中权限管理
权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少.权限管理几乎出现在任何系统里面,只要有用户和密码的系统.权限管理还是比较复杂的,有的固定到某个模 ...
- asp.net mvc的权限管理设计
现在集中展示用户-角色-权限管理的功能,因此,所有数据表一律简化处理. 1 后台管理效果 (1)角色管理 (2)权限管理 2 数据库设计(MSSQL) (1)用户表dbo.Users 项 类型 ...
- 朴素的标题:MVC中权限管理实践
基于MVC的web项目最好的权限控制方式我认为是对Action的控制,实现思路记录于此,权限管理分成两个部分授权.认证. 一.授权 1.读取当前项目中的所有需要控制的Action /// <su ...
- ASP.NET MVC 用户权限-1
MVC框架的开发网站的利器,MVC框架也开始越来越流行了.对于.NET ,微软也发布了MVC框架,做网站通常要涉及到用户的权限管理,对于.NET MVC 框架的用户权限管理又应该怎样设置呢?下面通过示 ...
- 用最基本的EF+MVC+JQ+AJAX+bootstrap实现权限管理的简单实例 之登陆和操作权限
先来一堆关于上篇文章的废话(不喜者点此隐藏) 今天把博客加了个小功能,就是点标题可以隐藏或展示相关内容,做法很傻,就是引用了bootstrap的两个css类和全部的js文件,其实这样的小功能完全应该自 ...
- Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理4
首先先加个区域,名为Admin using System.Web.Mvc; namespace AuthorDesign.Web.Areas.Admin { public class AdminAre ...
- Asp.Net Mvc通用后台管理系统,bootstrap+easyui+权限管理+ORM
产品清单: 1.整站源码,非编译版,方便进行业务的二次开发 2.通用模块与用户等基础数据的数据库脚本 3.bootstrap3.3.1 AceAdmin模板源码 4.easyui1.3.5源码 5.F ...
- Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理
这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是想通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基 ...
随机推荐
- ios crash 日志分析
以下内容来自网络 https://coderwall.com/p/ezdcmg/symbolicating-an-ios-crash-log-without-the-original-dsym-fil ...
- windows下用一台机器配置分布式redis(主从服务器)
目录1.Replication的工作原理2.如何配置Redis主从复制 1.Replication的工作原理在Slave启动并连接到Master之后,它将主动发送一条SYNC命令.此后Master将启 ...
- Linux 下三种方式设置环境变量
1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...
- [ActionScritp 3.0] 使用LocalConnection建立通信
包 flash.net 类 public class LocalConnection 继承 LocalConnection → EventDispatcher → Object 语言版本: Acti ...
- [DFNews] 入侵汽车控制刹车和油门?——速度与激情6 的节奏?
原文跳转: http://arstechnica.com/security/2013/07/disabling-a-cars-brakes-and-speed-by-hacking-its-compu ...
- DATAGUARD 在线重建备库
环境: OS: CentOS 6.5 X64 DB: oracle 10.2.0.5 故障:之前由于错误激活备库主写导致主备日志同步,重建备库 1.关闭备库,删除数据文件及控制文件,redo文件 rm ...
- Codeforces Round #228 (Div. 1) B
B. Fox and Minimal path time limit per test 1 second memory limit per test 256 megabytes input stand ...
- 剑指Offer:面试题20——顺时针打印矩阵(java实现)
题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数 字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1, ...
- 简单实用的Windows命令(一)
前几天新买了一台笔记本电脑,使用了一下几个简单的查看电脑配置的命令,觉得非常的不错,在此记录一下 一:运行命令的方式有两种 1:使用快捷键WIN+R,然后在弹出的“运行”对话框中输入对应的命令 2:在 ...
- Mac后台开发MNMP(nginx , mysql, php)标配
mysql安装: 方法:1.原始方法,下载压缩文件,解压,安装,配置 2.dmp文件安装 3.brew安装 这里使用brew安装: a.brew ...