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来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基 ...
随机推荐
- 保持const和non-const函数代码的一致
在用C++进行面向对象编程的时候,有时需要在一个类里包含两个代码相似的函数,而它们之间的唯一区别是,一个为const类型,一个是non-const类型. 此时如果将相同的代码写在两个函数中,则严重违反 ...
- 不同hadoop集群之间迁移hive数据
#!/bin/bash #set -x DB=$1 #获取hive表定义 ret=$(hive -e 'use ${DB};show tables;'|grep -v _es|grep -v _hb| ...
- android 实现桌面显示内容
//获取windowmanager 对象 WindowManager wm = (WindowManager) getApplicationContext().getSystemService(WIN ...
- iOS开发--应用设置及用户默认设置【1、bundle的运用】
在iphone里面,应用都会在“设置”里面有个专属的应用设置,选择该菜单界面,用户便可以在其中输入和更改各种选项,协助用户更便捷设置个人喜好与习惯. 在这一节中,希望能通过对捆绑包(bu ...
- MyBatis学习总结(五)——实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- Shell脚本IF条件判断和判断条件总结
转自:http://m.jb51.net/article/56553.htm 这篇文章主要介绍了Shell脚本IF条件判断和判断条件总结,本文先是给出了IF条件判断的语法,然后给出了常用的判断条件总结 ...
- 將後台的Json數據返回到前台
前台JS代碼 $.post('/Book/GetBookClassIDByName', { BookName: "旅遊手冊" }, function (data) { if (da ...
- http的应用httpurlconnection--------1
http请求后获得所需要的是字符串的时候 URL url=new URL(strurl); try { HttpURLConnection conn=(HttpURLConnection) url.o ...
- session基础
1.每个页面都必须开启session_start()后才能在每个页面里面使用session. 2.session_start()初始化session,第一次访问会生成一个唯一会话ID保存在客户端(是基 ...
- ado.net access oracle dataset via store procedure
使用存储过程返回结果集,并绑定到ado.net对象中在sql server里面是非常直观的. 1: create procedure GetAllRecords 2: as 3: select * f ...