登陆权限验证Session和Cookie用法及BasePage类使用
最近在做ASP.NET的项目时,接触到了登陆权限模块,所有总结了一下登陆时用到的知识和方法技巧。
如图说明:实现的效果如图,由于验证码验证比较简单这里就不介绍了

首先用代码生成器生成项目,以三层为例进行说明, 那么我以BlogUser表为例,然后就会有一个BlogUser实体类对象。
登陆的思想:当我们登陆成功的时候要将实体存入到session中,免登陆也是这个思想,只不过是当我们勾选免登陆的时候,第一次登陆进去,那么将用户的id存入到cookie中去,通过用户的id查找用户的实体,再赋值给session,那么session就不为空,就可以实现免登陆了。那么我们的BasePage又是什么呢?首先BasePage里面是其它页面的父类,只有通过登陆才能让用户去访问其它的页面,那么我们就用到PageBase类,然后在BasePage进行判断,如果Session为空,那么用户没登陆就跳转到登陆页面让用户登陆才能访问其它页面。
第一:前台登陆的主要代码:
1 BlogUserBLL bll = new BlogUserBLL();
//1.去数据库判断用户名和密码是否正确
List<BlogUser> list = bll.GetModelList("LoginName='" + name + "' and LoginPwd='" + md5Pwd + "'");
//2.判断用户集合是否存在
if(list.Count>)
{
//3.将用户信息保存到session中
Context.Session["uInfo"] = list[];
//4.判断用户是否选中了记住登陆
if (!string.IsNullOrWhiteSpace(remember))
{
//5.记住了就将用户id存入cookie中
HttpCookie cookie = new HttpCookie(“uid”,list[].Id.ToString());
cookie.Expires = DateTime.Now.AddDays();
Context.Response.Cookies.Add(cookie);
}
Response.Write("<script>alert('登陆成功');window.location='BlogList.aspx'</script>");
}
else
{
Response.Write("<script>alert('登陆失败,请重新登陆');window.location='/Login.aspx'</script>");
}
Response.End();
第二:PageBase类,首先这个类要继承System.Web.UI.Page,其实这个类主要是重写了一个方法,这涉及到aspx页面的生命周期和一系列的管道事件,简单的来说吧,这相当于一个过滤器,当你请求其它页面(要登陆之后才能访问),那么它们都继承这个页面,会先在这个页面判断你是否有登陆,如果没有登陆,那么就跳转到登陆页面去。
主要代码
protected override void OnInit(EventArgs e)
{
if (Session["uInfo"] == null)
{
//1.判断用户是否勾选记住三天免登陆
if (Request.Cookies[“uid”] != null)
{
BlogUserBLL bll = new BlogUserBLL();
//2.通过cookie里传人的数据得到数据实体
BlogUser umodel = bll.GetModel(int.Parse(Request.Cookies["uid"].Value));
//3.将实体存入session中
Session["uInfo"] = umodel;
return;
}
//4.跳转到登陆页面
Response.Redirect("/Login.aspx");
}
base.OnInit(e);
}
注意:BasePage是针对于aspx页面的,那么ashx页面,我们又会有另外一个父类,是BaseHandler,原理差不多,写法还是有点区别,如果大家感兴趣的可以联系我,我可以发给大家,还有哪里有不清楚的也可以留言。
登陆权限验证Session和Cookie用法及BasePage类使用的更多相关文章
- Struts2 自定义拦截器实例—登陆权限验证
实现一个登陆权限验证的功能 message.jsp: <body> message:${message } </body> login.jsp: <% request.g ...
- shiro登陆权限验证
一>引入shirojar包 <!-- shiro登陆权限控制 --> <dependency> <groupId>org. ...
- .net core 2.0 登陆权限验证
首先在Startup的ConfigureServices方法添加一段权限代码 services.AddAuthentication(x=> { x.DefaultAuthenticateSche ...
- Spring Security 自定义 登陆 权限验证
转载于:https://www.jianshu.com/p/6b8fb59b614b 项目简介 基于Spring Cloud 的项目,Spring Cloud是在Spring Boot上搭建的所以按照 ...
- Struts2自定义拦截器实例—登陆权限验证
版本:struts2.1.6 此实例实现功能:用户需要指定用户名登陆,登陆成功进入相应页面执行操作,否则返回到登陆页面进行登陆,当直接访问操作页面(登陆后才能访问的页面)时则不允许,须返回登陆页面. ...
- Struts2自己定义拦截器实例—登陆权限验证
版本号:struts2.1.6 此实例实现功能:用户须要指定username登陆,登陆成功进入对应页面运行操作,否则返回到登陆页面进行登陆,当直接訪问操作页面(登陆后才干訪问的页面)时则不同意,须返回 ...
- Struts2他们拦截器实例定义—登陆权限验证
版本号:struts2.1.6 这种情况下实现功能:用户需要指定username登陆,进入相应的页面运行成功登陆作战,否则,它返回到着陆的登录页面,当直接进入操作页面(登陆访问页面后的能力)如果不同意 ...
- PHP——注册页面,审核页面,登录页面:加Session和Cookie
实现效果: 用户注册信息,管理员核对信息审核通过后,可实现注册的用户名和密码的成功登陆,利用session和cookie获取用户信息并且不能跳过登录页面直接进入主页面 1.Session存储在服务器可 ...
- ASP.NET通用权限验证组件实现
沙发(SF)通用权限验证组件 开篇 本篇介绍通用权限验证的实现代码思路,总共分为导入参数.解析XML.根据XML配置进行处理.返回结果. 代码架构图 1. 类介绍 1.SFWebPermissio ...
随机推荐
- WEB服务器3--IIS7.0安装和配置
安装Web服务器(IIS) 点击开始菜单->所有程序->管理工具->服务器管理器,启动服务器管理器,界面如下: 在服务器管理器中,选择角色,你将可以看到角色总视图. 点击添加角色,会 ...
- SOLR使用手册之操作collection
一.Collections API 参考:https://cwiki.apache.org/confluence/display/solr/Collections+API 因为API比较多,我就不一 ...
- Android PackageManager基础知识
一.PackageManagerService启动过程 SystemServer首先启动,创建一个ServerThread线程来启动所有Android核心服务,其中PackageManagerServ ...
- 使用Unity在MVC上实现动态注入
一.前言 通过前一篇的文章介绍使用unity轻量级的依赖注入容器,本文就介绍在MVC上使用unity依赖注入控制器和控制器中的日志属性. 实现MVC中新提供 的两个接口:IDependencyReso ...
- calc()函数的使用
calc()函数算是css中的一个另类了,一般来说css都是直接确定的样式,而calc()函数却是可以动态计算,这和css静态的概念有些区别,但这并不妨碍其优秀的性能. 什么是calc()? calc ...
- Struts2中的ActionContext
ActionContext(Action上下文) ActionContext介绍 通过上面用户注册例子的学习,我们知道Xwork与Web无关性,我们的Action不用去依赖于任何Web容器,不用和那些 ...
- HDU 5735 - Born Slippy
题意: 一棵 n 个节点的根树,i 节点权重 wi 对每一个节点s,找到这样一个长 m 的标号序列 v : 1. vi是vi-1 的祖先 2. f[s] = w[vi] + ∑(i=2, m) (w[ ...
- TCP的状态
在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 它们的含义是: SYN表示建立连 ...
- (原)ubuntu上安装nvidia及torch的nccl
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5717234.html 参考网址: https://github.com/NVIDIA/nccl htt ...
- UnSupported Encoding错误
学习struts2的时候碰到tomcat报错:org.apache.jasper.JasperException: Unsupported encoding: UTF-8,原因是jsp文件中的pag ...