求 asp.net MVC实现权限控制的完整实例

jhdxhj 2015-09-30 09:49:53
求 asp.net MVC实现权限控制的完整实例
...全文
124 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
风声3 2015-09-30
  • 打赏
  • 举报
回复
只能提供思路,我也在学习中,一个人自学挺闷,希望能多一点讨论,我可能会这样处理: 一、简单的权限控制 1)在用户表增加权限字段,比如:user_right; 2)登陆后通过 FormsAuthentication.SetAuthCookie(u.Id, false); 将用户Id写入Cookie 据说通过SetAuthCookie写入的Cookie不那么容易假冒的,没有深究过,假设安全,不安全的话等.NET出补丁; 3)BaseController 增加一个公共属性,比如 public UserInfo UserInfo { get { return _UserInfo;} } private UserInfo _UserInfo; 4)BaseController 构造函数中从Cookie中读取用户Id并读取数据库给 _UserInfo赋值 int id = HttpContext.Current.User.Identity.IsAuthenticated ? Int32.Parse(System.Web.HttpContext.Current.User.Identity.Name) : 0; _UserInfo = id>0 ? GetUserInfo(id) : null; 当然UserInfo 中包含用户权限属性; 5)定义权限过滤属性

public class AuthorizeBy : ActionFilterAttribute
    {
        public int LimitRight { get; set; }
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            BaseController c = filterContext.Controller as BaseController;
            if (c != null)
            {
                if (c.UserInfo == null || c.UserInfo.Right < LimitRight)
                {
                    filterContext.Result = new ContentResult()
                    {
                        Content = "您无权访问"
                    };
                }
            }
        }
    }
6)在需要权限控制的Action上加属性 [AuthorizeBy(LimitRight = 4)] public ActionResult Index()
jhdxhj 2015-09-30
  • 打赏
  • 举报
回复
http://www.soaspx.com/dotnet/asp.net/DPattern/dpattern_20121028_9742.html

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧