• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
袜子不回头
一个人走着走着摔倒了,爬起来,又摔倒了,又爬起来,又摔倒了,死循环了……
博客园    首页    新随笔    联系   管理    订阅  订阅

MVC 的点点滴滴--------自定义权限验证(简单版)

public class RoleFilter : FilterAttribute, IAuthorizationFilter
02    {
03  
04        #region IAuthorizationFilter 成员
05  
06        /// <summary>
07        /// 产生随机数判断是否具有权限访问
08        /// </summary>
09        /// <param name="filterContext"></param>
10        public void OnAuthorization(AuthorizationContext filterContext)
11        {
12            Random random = new Random();
13            int i = random.Next(0, 10);
14            if (i > 3)
15            {
16                filterContext.Result = new RedirectResult(ConfigurationManager.AppSettings["Url"] + "/Error/Index/" + i);
17            }
17

           //例如:var Name=httpContext.User.Identity.Name;

           //      if(Name!="Admin") 这里可做到数据库检查做权限验证

                      //do something for failed,you can go to registe page

 
18        }
19  
20        #endregion
21  
22    }

代码比较简单产生个随机数,如果大于3跳转到错误页面~~这个地方可以从数据库中读取权限配置~~例如用户的服务端权限验证

例如在上边代码块用httpContext.User.Identity.Name来获取用户唯一信息,当然,要在用户登录的时候设置此信息,如下:

1         

System.Web.Security.FormsAuthentication.SetAuthCookie("Admin", true);

 
1         [RoleFilter()]
2         public ActionResult Del(int id)
3         {
6             return View();
7         }

这样即可完成权限!

posted @ 2011-10-13 14:44  袜子不回头  阅读(529)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3