ASP.NET Forms身份认证
asp.net程序开发,用户根据角色访问对应页面以及功能。
项目结构如下图:
根目录 Web.config 代码:
<?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细消息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <authentication mode="Forms"> <forms loginUrl="login.aspx"></forms> </authentication> <!--<authorization> <allow users="*"></allow> </authorization>--> </system.web> </configuration>
admin文件夹中 Web.config 代码:
<?xml version="1.0"?> <configuration> <system.web> <authorization> <allow roles="admin" /> <deny users="*"/> </authorization> </system.web> </configuration>
teacher文件夹中 Web.config 代码:
<?xml version="1.0"?> <configuration> <system.web> <authorization> <allow roles="teacher" /> <deny users="*"/> </authorization> </system.web> </configuration>
student文件夹中 Web.config 代码:
<?xml version="1.0"?> <configuration> <system.web> <authorization> <allow roles="student" /> <deny users="*"/> </authorization> </system.web> </configuration>
Login.aspx中登录成功后设置Cookie,设置Cookie代码:
protected void SetLoginCookie(string username, string roles) { System.Web.Security.FormsAuthentication.SetAuthCookie(username, false); System.Web.Security.FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddDays(1), false, roles, "/"); string hashTicket = FormsAuthentication.Encrypt(ticket); HttpCookie userCookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashTicket); HttpContext.Current.Response.SetCookie(userCookie); }
Global.asax 中进行身份验证:
protected void Application_AuthenticateRequest(object sender, EventArgs e) { HttpApplication app = (HttpApplication)sender; HttpContext ctx = app.Context; //获取本次Http请求的HttpContext对象 if (ctx.User != null) { if (ctx.Request.IsAuthenticated == true) //验证过的一般用户才能进行角色验证 { System.Web.Security.FormsIdentity fi = (System.Web.Security.FormsIdentity)ctx.User.Identity; System.Web.Security.FormsAuthenticationTicket ticket = fi.Ticket; //取得身份验证票 string userData = ticket.UserData;//从UserData中恢复role信息 string[] roles = userData.Split(','); //将角色数据转成字符串数组,得到相关的角色信息 ctx.User = new System.Security.Principal.GenericPrincipal(fi, roles); //这样当前用户就拥有角色信息了 } } }
原文链接:http://www.cnblogs.com/lyyjun1203/p/6365780.html
(资源库 www.zyku.net)
您可能感兴趣的文章
- 03-25Win10 .Net Runtime Optimization Service占用大量CPU
- 11-02无法向会话状态服务器发出会话状态请求。请确保 ASP.N
- 07-26asp.net使用ashx生成图形验证码的方法示例
- 07-18ASP.NET编程简单实现生成静态页面的方法
- 06-29ASP.NET中的参数与特殊类型和特性
- 06-29Asp.Net程序目录下文件夹或文件操作导致Session失效的
- 02-17ASP.NET MVC分页问题解决
- 02-17ASP.NET动态增加HTML元素的方法实例小结
- 02-17详解ASP.NET提取多层嵌套json数据的方法
- 02-17ASP.NET MVC分页控件
- 06-27ThinkPHP 5.1 伪静态规则
- 08-11vivo手机怎么启用地震预警服务
- 02-14HTML5拖拉上传文件的简单实例_1
- 01-11小学英语同步作文-小学英语同步作文应
- 01-12倾城相机-倾城相机应用软件功能介绍
- 02-19WordPress前台后台出现一片空白的原因
- 01-09视频合并剪辑精灵-视频合并剪辑精灵应
- 07-22阿里云CentOS报错Redirecting to /bin
- 09-13homepodmini播放qq音乐教程分享
- 12-09苹果13放大布局在哪里设置
最近更新
阅读排行
猜你喜欢
- 01-10台州御聘-台州御聘应用软件功能介绍
- 11-30微信怎么查看实时公交
- 07-05Linux od命令
- 03-19oppofindx3pro关闭拨号音教程
- 11-10苹果13麦克风模式在哪调整
- 12-14HTML <tbody> 标签
- 12-29安全扫描王pro-安全扫描王pro应用软件
- 08-15Windows11设置开机画面方法介绍
- 03-04wordpress支持中文用户名的实现方法
- 07-18百度地图设置省电模式教程