asp.net MVC2 初探三

简介:

如何实现基于角色的权限控制

[Authorize(Roles = "admin")]
标记的action只能是认证用户才能访问。
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 
                        1, 
                        userName, 
                        DateTime.Now, 
                        DateTime.Now.AddMinutes(20), 
                        false
                        "admin"//写入用户角色 
                        ); 
                 
                string encryptedTicket = FormsAuthentication.Encrypt(authTicket); 
                 
                System.Web.HttpCookie authCookie = new System.Web.HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); 
                System.Web.HttpContext.Current.Response.Cookies.Add(authCookie); 

[Authorize(Roles =  "admin")]
标记的action只能是认证用户才能访问。
FormsAuthenticationTicket authTicket =  new FormsAuthenticationTicket( 
                        1, 
                        userName, 
                        DateTime.Now, 
                        DateTime.Now.AddMinutes(20), 
                         false
                         "admin" //写入用户角色 
                        ); 
                 
                 string encryptedTicket = FormsAuthentication.Encrypt(authTicket); 
                 
                System.Web.HttpCookie authCookie =  new System.Web.HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); 
                System.Web.HttpContext.Current.Response.Cookies.Add(authCookie); 
在全局配置文件中加入如下代码
protected  void Application_AuthenticateRequest(Object sender, EventArgs e) 
        { 
                HttpCookie authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName]; 
                 if (authCookie ==  null || authCookie.Value == "") 
                { 
                         return
                } 
                FormsAuthenticationTicket authTicket =  null
                 try 
                { 
                        authTicket = FormsAuthentication.Decrypt(authCookie.Value); 
                } 
                 catch 
                { 
                         return
                } 
                 string[] roles = authTicket.UserData.Split( new  char[] { ';' }); 
                  if (Context.User !=  null
                { 
                        Context.User =  new System.Security.Principal.GenericPrincipal(Context.User.Identity, roles); 
                } 
        } 

ok,这样就可以实现角色权限的控制



本文转自 BruceAndLee 51CTO博客,原文链接:http://blog.51cto.com/leelei/317919,如需转载请自行联系原作者


相关文章
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
38 0
|
28天前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
28 0
|
28天前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
95 5
|
3月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
25 0
|
3月前
|
前端开发
.net core mvc获取IP地址和IP所在地(其实是百度的)
.net core mvc获取IP地址和IP所在地(其实是百度的)
123 0
|
5月前
|
开发框架 自然语言处理 前端开发
基于ASP.NET MVC开发的、开源的个人博客系统
基于ASP.NET MVC开发的、开源的个人博客系统
51 0
|
8月前
|
SQL 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(完:内附源码)
经过一段时间的准备,【ASP.NET Core MVC开发实战之商城系统】已经完成,目前代码已开发完成,先将全部内容整理分享,如有不足之处,还请指正。
106 0
|
8月前
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(六)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情,购物车等功能的开发,今天继续讲解订单管理功能开发,仅供学习分享使用,如有不足之处,还请指正。
214 0
|
8月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
114 0