• asp.net记住我功能


    登录页面的记住我功能  
    不能用session的原因:sessionID是以cookie的形式存在浏览器端的内存中  如果用户把浏览器关闭 则sessionID就消失    
    但是服务器端的session在过期时间内还是存在的 等到浏览器在 默认的过期时间内(20分钟)不在向服务器发送请求 则过了20分钟 session销毁!
    前端简单模拟:
     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="RememberMe.Login" %>
     2 
     3 <!DOCTYPE html>
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     8     <title></title>
     9     <script type="text/javascript">
    10         window.onload = function () {
    11             document.getElementById('btnClose').onclick = function () {
    12                 window.close();
    13             };
    14         };
    15     </script>
    16 </head>
    17 <body>
    18     <form id="form1" runat="server">
    19         <div style="text-align: center;">
    20             <table>
    21                 <tr>
    22                     <td>用户名:
    23                         <input type="text" name="txtName" value="<%=uName %>" /></td>
    24                 </tr>
    25                 <tr>
    26                     <td>&nbsp;&nbsp;&nbsp;&nbsp;码:<input type="password" name="txtPwd" value="<%=pwd %>" />
    27                     </td>
    28                 </tr>
    29                 <tr>
    30                     <td colspan="2">
    31                         <input type="checkbox" name="rememberMe" value="1" checked="checked" />记住我</td>
    32                 </tr>
    33                 <tr>
    34                     <td colspan="2">
    35                         <input type="submit" value="登录" />
    36                         <input type="button" value="关闭" id="btnClose" /></td>
    37                 </tr>
    38             </table>
    39 
    40         </div>
    41     </form>
    42 </body>
    43 </html>
    Login.aspx

    后台代码:

    1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.UI;
     6 using System.Web.UI.WebControls;
     7 
     8 namespace RememberMe
     9 {
    10     public partial class Login : System.Web.UI.Page
    11     {
    12         protected string uName;
    13         protected string pwd;
    14         protected void Page_Load(object sender, EventArgs e)
    15         {
    16 
    17             if (Request.Cookies["user"] != null)
    18             {
    19                 uName = Request.Cookies["user"].Values["n"];
    20                 pwd = Request.Cookies["user"].Values["p"];
    21             }
    22             if (IsPostBack)
    23             {
    24                 string userName = Request.Form["txtName"];
    25                 string userPwd = Request.Form["txtPwd"];
    26                 if (!string.IsNullOrEmpty(Request.Form["rememberMe"]))
    27                 {
    28                     if (userName == "admin" && userPwd == "admin")
    29                     {
    30                         AlertAndRedirect("Index.aspx?n=" + userName, "登录成功");
    31                         HttpCookie cookie = new HttpCookie("user");
    32                         cookie["n"] = userName;
    33                         cookie["p"] = userPwd;
    34                         cookie.Expires = DateTime.Now.AddDays(7);
    35                         Response.Cookies.Add(cookie);
    36                     }
    37                     else
    38                     {
    39                         AlertAndRedirect("Login.aspx", "登录失败");
    40                         Response.Cookies["user"].Expires = DateTime.Now.AddDays(-1);
    41                     }
    42                 }
    43                 else
    44                 {
    45                     Response.Cookies["user"].Expires = DateTime.Now.AddDays(-1);
    46                     if (userName == "admin" && userPwd == "admin")
    47                     {
    48                         AlertAndRedirect("Index.aspx?n=" + userName, "登录成功");
    49                     }
    50                     else
    51                     {
    52                         AlertAndRedirect("Login.aspx", "登录失败");
    53                     }
    54                 }
    55             }
    56 
    57         }
    58         private void AlertAndRedirect(string redirectURL, string msg)
    59         {
    60             Response.Write("<script>alert('" + msg + "');window.location.href='" + redirectURL + "';</script>");
    61         }
    62     }
    63 }
    Login.aspx,cs

    基本功能实现。

  • 相关阅读:
    HDU4477 Cut the rope II 递推
    HDU4571 Travel in time 动态规划
    在VS2010中使用$err,hr快速查看当前GetLastError()的值
    对C语言的volatile关键字的理解
    三星S6D1121主控彩屏(240*320*18bit,262K)图形设备接口(GDI)实现
    C语言创建二叉树数据结构, 以及各种遍历
    Ubuntu下使用Dr.com宽带客户端上网的步骤
    8051单片机学习笔记/概要/总结/备忘
    联想笔记本电脑Ubuntu系统下触摸板的锁定
    [MSP430] 集成开发环境 IAR Embedded Workbench for MSP430 5.50
  • 原文地址:https://www.cnblogs.com/hehehehehe/p/6196158.html
Copyright © 2020-2023  润新知