时间:2016-02-16 00:46 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【一个基于Asp.Net MVC的权限方案】,下面是详细的讲解!
一个基于Asp.Net MVC的权限方案
using System.Collections.Generic;
using System.Web.Mvc;
using Madnet.Model.MadAdmin;
using Madnet.BLL.MadAdmin;
namespace Madnet.Controllers.MadAdmin
{
public class SupportFilterAttribute : ActionFilterAttribute
{
private bool _IsLogin=true;
/// <summary>
/// 是否需要登录
/// </summary>
public bool IsLogin
{
set
{
_IsLogin=value;
}
get
{
if (System.Configuration.ConfigurationManager.AppSettings["IsLogin"] !=null)
{
bool.TryParse(System.Configuration.ConfigurationManager.AppSettings["IsLogin"].ToString(), out _IsLogin);
}
return _IsLogin;
}
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string controllerName=(string)filterContext.RouteData.Values["controller"];
string actionName=(string)filterContext.RouteData.Values["action"];
if (IsLogin && filterContext.HttpContext.Session["Login_User"]==null)
{
filterContext.HttpContext.Response.Redirect(new UrlHelper(filterContext.RequestContext).Action("Login", "Default"));
filterContext.Result=new EmptyResult();
}
else if (IsLogin && filterContext.HttpContext.Session["Login_User"] !=null)
{
Mad_User user=filterContext.HttpContext.Session["Login_User"] as Mad_User;
if (!user.is_super)
{
if (!GetPopedom(user).Exists(p=> p.Controller_Name==controllerName.ToLower() && p.Action_Name==actionName.ToLower()))
{
filterContext.HttpContext.Response.Write("没有权限");
filterContext.Result=new EmptyResult();
}
}
}
}
/// <summary>
/// 获取当前用户所有有权限执行的动作
/// </summary>
/// <returns></returns>
public List<Atmodel> GetPopedom(Mad_User user)
{
List<Atmodel> ats=new List<Atmodel>();
List<Mad_Popedom> pops=Mad_PopedomBLL.GetPopedombyUser(user.user_id);
foreach (Mad_Popedom pop in pops)
{
ats.Add(new AtModel() { Controller_Name=pop.Control, Action_Name=pop.Action });
}
return ats;
}
}
}
关于一个基于Asp.Net MVC的权限方案的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
