MVC权限认证

1.权限就是一个登陆的权限,我们可以重写AuthorizeAttribute达到自定义的权限管理,重写AuthorizeAttribute里面的OnAuthorization方法。

 public override void OnAuthorization(AuthorizationContext filterContext)
        {
            base.OnAuthorization(filterContext);
            if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
            {
                filterContext.HttpContext.Response.Redirect("~/Account/Login?returnUrl=" + filterContext.HttpContext.Request.RawUrl);
                return;
            }
            var userName = filterContext.HttpContext.User.Identity.Name.Split(‘|‘)[0];
            if (string.IsNullOrEmpty(userName)) return;
            权限实体 open = 获取用户权限(userName);
            if (是否存在权限)
            {
                //权限不存在
                filterContext.HttpContext.Response.Redirect("~/Account/NoAuthority");
            }
        }

2.在登陆页面只要保存一下登陆的Cook值就OK了

FormsAuthentication.SetAuthCookie(userInfo.UserId.ToString() + "|" + userInfo.UserName.ToString(), false);
var returnUrl = Request["returnUrl"];
return Redirect(!string.IsNullOrEmpty(returnUrl) ? returnUrl : "~/");

3.只要在每个acction上面添加重写的AuthorizeAttribute就可以了。

时间: 2024-11-02 23:31:37

MVC权限认证的相关文章

关于ASP.NET MVC的权限认证的一些总结

最近在学ASP.NET MVC的权限认证的一些东西,上网搜索了一阵,发现网上的方法大多数是以下几类: 一.FormsAuthentication.SetAuthCookie(admin.Name, false)或者是FormsAuthenticationTicket 感受:感觉FormsAuthentication.SetAuthCookie这种方法重在检查是否有用户登录等,需要检查权限时,要调用this.User.Identity.IsAuthenticated方法来检查是否授权等,每次要检查

asp.net权限认证:Forms认证

摘要: 明天就除夕了,闲着也是闲着,特地总结一些关于.net下的权限认证的方法. 一.Forms认证示意图 Forms认证即是表单认证,需提供身份id和密码password的进行认证和授权管理. 应该是大家比较熟悉的一种,刚接触.net可能都会学学这个东西. 下面看看他的工作方式: 二.看图太乏味,我准备了一个demo 因为默认首页为:IndexController/Index,这个页面只要一行字 “Index”, 效果图: OK,页面没有做任何权限控制,显示正常. 接下来看看DefaultCo

白名单 权限认证方法

针对,MVC,模块,控制器 这类框架 思路: 1:系统是否需要认证(配置文件 可设置), 2:改模块,是否在(不需要认证的模块中(配置文件)) 3:模块 不存在 不需要认证的模块数组中,或者 模块,存在 需要认证的模块数组中 4:方法 不存在 不需要认证的方法数组中,或者 方法,存在 需要认证的方法数组中 5:获取白名单的数组 6:当用户访问一个模块时,取路径与白名单对比,白名单中有此路径,就通过,不然就没权限 7:访问需求 1:模块名称 方法名称 在白名单 2:模块名称在白名单 且 模块 数组

**[权限控制] 利用CI钩子实现权限认证

http://codeigniter.org.cn/forums/thread-10877-1-1.html 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了,后来仿着jsp firter的方式用CI钩子写了一下,感觉还可以,做个小网站,小应用足够了,没必要搞得太复杂.看到很多人在网上问,这里把我们的方法分享一下,如果你有更好的实现,也请记得分享给我们.^_^ 通常我们后台路径看起来都会像下面这样: http://www.php-chongqing.com

.Net Mvc5Filter与权限认证扩展

WebForm 在做WebForm的时候,如果我们要实现某页面登陆后才能访问,这个非常容易实现 public partial class IndexForm : Page { protected void Page_Load(object sender, EventArgs e) { //检查是否登录(session/cookie),失败跳转登录,成功继续访问 } } 但是实际工作中,不会只有一个页面需要权限检查,当我们面对多个页面的时候,该如何处理呢?这个时候一般会采取下列这种处理方式: 1

转 Codeigniter-实现权限认证

Codeigniter-实现权限认证 两种方法 钩子函数 集成核心Controller 方法一,钩子函数: 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了,后来仿着jsp firter的方式用CI钩子写了一下,感觉还可以,做个小网站,小应用足够了,没必要搞得太复杂.看到很多人在网上问,这里把我们的方法分享一下,如果你有更好的实现,也请记得分享给我们.^_^ 通常我们后台路径看起来都会像下面这样: http://www.php-chongqing.com/

asp.net权限认证:摘要认证(digest authentication)

asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证:摘要认证(digest authentication) 一.摘要认证由来 摘要认证是对基本认证的改进,即是用摘要代替账户密码,从而防止明文传输中账户密码的泄露 之前对摘要认证也不是很熟悉,还得感谢圆中的 parry 贡献的博文:ASP.NET Web API(三):安全验证之使用摘要认证(dige

thinkphp5_auth 权限认证

1.Auth类文件引入 2.写一个公共类AuthInfo,所有要权限认证的类都继承此公共类AuthInfo class AuthInfo extends Controller{ protected function _initialize(){ if(!session("?intel_uid")){ echo "<script>alert('没有登陆!');window.location.href = '".url('index/index/index'

Restful风格wcf调用4——权限认证

写在前面 在前面的三篇文章,已经介绍了restful风格wcf,如何实现增删改查以及文件的上传下载操作.本篇文章将介绍一下,调用restful的权限认证的内容.在调用的接口,为了安全,总会需要对请求进行权限认证的.以防一些非法的操作. 系列文章 Restful风格wcf调用 Restful风格wcf调用2——增删改查 Restful风格wcf调用3——Stream 一个例子 在REST WCF中,我们可以利用 HttpHeader 来完成这一目标. 首先我们添加一个校验身份的一个方法. ///