登录判断 之 asp.net 使用内置票据来判断某用户是否有权限登录此网页

发布时间:2016-12-10 1:39:27 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"登录判断 之 asp.net 使用内置票据来判断某用户是否有权限登录此网页",主要涉及到登录判断 之 asp.net 使用内置票据来判断某用户是否有权限登录此网页方面的内容,对于登录判断 之 asp.net 使用内置票据来判断某用户是否有权限登录此网页感兴趣的同学可以参考一下。

网页中通常会用到登录用户名和密码,才能进行一系列的增删改查操作,这时我们可以         使用Session来进行页面之间传值。判断Session的值是不是为空和Session值来区分         有没有权限,但是这种方法有很大的缺点,一是Session是有时间限制的,二是我们每         一个页面都需要进行判断,影响了编程效率。这时我们可以使用asp.net内置票据认证,         他的作用是:根据你的设置,在进入到某一个目录下的页面时自动判断你是否有权限访问         这个页面,没有权限则自动跳转到你预先设置的登录页。说了那么多,让我们看看asp.net         内置票据认证的用法:         已一个项目为例:此项目中有个admin文件夹,此文件夹下保存的是网站后台的页面文件,         这个文件夹下的页面必须在login.aspx页面中登录用户名和密码后才可以访问,步骤如下:         第一步:在根目录建立一个全局应用程序类(Global.asax)文件         第二步:在Global.asax中修改Application_AuthenticateRequest如下: protected void Application_AuthenticateRequest(object SENDER, EventArgs e) { if (HttpContext.Current.User != null) { if (HttpContext.Current.User.Identity.IsAuthenticated) { if (HttpContext.Current.User.Identity is FormsIdentity) { FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity; FormsAuthenticationTicket tiecket = id.Ticket; string userData = tiecket.UserData; string[] roles = userData.Split(','); HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id, roles); } } } }            第三步:在web.config 文件中配置目录权限及登录页(在system.web节点中) <authentication mode="Forms"> <forms name="mycook" loginUrl="admin/login.aspx" protection="All" path="/"/> </authentication>           第四步:在system.web节点外面配置权限 <location path="admin"> //在admin文件夹下 <system.web> <authorization> <allow roles="admin"/> //允许admin <deny users="*"/> //拒绝所有用户 </authorization> </system.web> </location> <location path="admin/login.aspx"> //在admin/login.aspx页面 <system.web> <authorization> <allow users="*"/> //这个页面允许所有人登录 </authorization> </system.web> </location>         第五步:在登录页添加代码           1.在登录页面添加引用 using System.Web.Security;            2.在登录页的登录事件中的登录成功后添加如下代码            HttpCookie cook; string strReturnURL; //登录成功后返回的url string roles="admin"; //用户角色 //下面代码的意思是传入用户名name,将此用户角色变为admin使其有权限 FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( 1, name, DateTime.Now, DateTime.Now.AddMinutes(30), false, roles); cook = new HttpCookie("mycook"); cook.Value = FormsAuthentication.Encrypt(ticket); Response.Cookies.Add(cook); strReturnURL = Request.Params["ReturnUrl"]; if (strReturnURL != null) { Response.Redirect(strReturnURL); } else { Response.Redirect("login.aspx");//没有权限跳回页面 } 原文:http://www.cnblogs.com/gaopin/archive/2012/08/29/2662026.html

上一篇:OSCache缓存方案
下一篇:如果使用Python,不同的阶段应该有多种选项,反而容易让人困惑

相关文章

相关评论