最近在做ASP.NET的项目时,接触到了登陆权限模块,所有总结了一下登陆时用到的知识和方法技巧。

如图说明:实现的效果如图,由于验证码验证比较简单这里就不介绍了

首先用代码生成器生成项目,以三层为例进行说明, 那么我以BlogUser表为例,然后就会有一个BlogUser实体类对象。

登陆的思想:当我们登陆成功的时候要将实体存入到session中,免登陆也是这个思想,只不过是当我们勾选免登陆的时候,第一次登陆进去,那么将用户的id存入到cookie中去,通过用户的id查找用户的实体,再赋值给session,那么session就不为空,就可以实现免登陆了。那么我们的BasePage又是什么呢?首先BasePage里面是其它页面的父类,只有通过登陆才能让用户去访问其它的页面,那么我们就用到PageBase类,然后在BasePage进行判断,如果Session为空,那么用户没登陆就跳转到登陆页面让用户登陆才能访问其它页面。

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);
}

第二:PageBase类

注意:BasePage是针对于aspx页面的,那么ashx页面,我们又会有另外一个父类,是BaseHandler,原理差不多,写法还是有点区别。

Asp.Net_Session跟Cookie的记住登陆名的更多相关文章

  1. (转)asp.net 使用cookie完成记住密码自动登录

     代码如下 复制代码 string username = this.txtUserName.Text;//用户名        string password = this.txtPassword.T ...

  2. cookie实现记住登录名和密码

    在最近学习的session作用域中,顺便了解了一下cookie, session是存放在服务器中,而cookie是存放在客户端中. 本篇文章主要是使用cookie来实现记住密码的功能. 简单的logi ...

  3. 超级简单的checkbox赋值,用于记住登陆名

    <input name="rememberme" type="checkbox" id="rememberme" onclick=&q ...

  4. 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能

    function setCookie(){ //设置cookie var loginCode = $("#login_code").val(); //获取用户名信息 var pwd ...

  5. ASP.NET -- WebForm -- Cookie的使用 应用程序权限设计 权限设计文章汇总 asp.net后台管理系统-登陆模块-是否自动登陆 C# 读写文件摘要

    ASP.NET -- WebForm -- Cookie的使用 ASP.NET -- WebForm --  Cookie的使用 Cookie是存在浏览器内存或磁盘上. 1. Test3.aspx文件 ...

  6. [译]在Asp.Net Core 中使用外部登陆(google、微博...)

    原文出自Rui Figueiredo的博文<External Login Providers in ASP.NET Core> 摘要:本文主要介绍了使用外部登陆提供程序登陆的流程,以及身份 ...

  7. 【译】在Asp.Net Core 中使用外部登陆(google、微博...)

    原文出自Rui Figueiredo的博文<External Login Providers in ASP.NET Core> (本文很长) 摘要:本文主要介绍了使用外部登陆提供程序登陆的 ...

  8. Asp.net操作cookie大全

    实例代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3 ...

  9. asp.net各种cookie代码和解析

    Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...

随机推荐

  1. SELECT查询结果集INSERT到数据表

    简介 将查询语句查询的结果集作为数据插入到数据表中. 一.通过INSERT SELECT语句形式向表中添加数据 例如,创建一张新表AddressList来存储班级学生的通讯录信息,然后这些信息恰好存在 ...

  2. Security Software Engineer

    Security Software Engineer Are you excited to be part of the VR revolution and work on cutting edge ...

  3. C语言实现输出杨辉三角

    1.倒推法实现输出杨辉三角右半部分,代码如下: #include<stdio.h> int main() { ]; printf("请输入行数n:"); scanf(& ...

  4. jquery实现返回页面顶部功能。

    <p id="back-to-top"> <span></span> </p> <script type="text ...

  5. Spring-IOC 扩展点 BeanFactoryPostProcessor及其子接口解析

    BeanFactoryPostProcessor 接口的英文描述: Allows for custom modification of an application context's bean de ...

  6. jQuery 使用ajax,并刷新页面

    <script> function del_product_information(id) { $.ajax({ url: "{% url 'del_product_inform ...

  7. jenkins slave 安装服务与卸载

    查看windows 服务 cmd 运行下图用我已经安装的jnlp服务展示效果 : services.msc 关于这个服务名称怎么来的: 我的 工作台路径:如下: 进入jenkins slave 下载j ...

  8. 字典树Trie树

    摘自大佬博客 https://www.cnblogs.com/TheRoadToTheGold/p/6290732.html 给出n个单词和m个询问1.查询某个前缀是否出现过2.查询某个单词是否出现过 ...

  9. 一个将lambda字符串转化为lambda表达式的公共类

    一个将lambda字符串转化为lambda表达式的公共类.StringToLambda 使用方式如下: var module = new Module(); url = url.ToLower();/ ...

  10. Jquery的Ajax中contentType和dataType的区别(转载)

    上代码 $.ajax({ type: httpMethod, cache: false, contentType: "application/json; charset=utf-8" ...