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,如需转载请自行联系原作者


相关文章
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
406 5
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
249 7
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
289 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
222 0
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
406 0
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
492 0
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
204 0
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界