热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

asp.net记住我功能

登录页面的记住我功能不能用session的原因:sessionID是以cookie的形式存在浏览器端的内存中如果用户把浏览器关闭则sessionID就消失但是
登录页面的记住我功能  
不能用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>    码:<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("");
61         }
62     }
63 }
Login.aspx,cs

基本功能实现。


推荐阅读
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
    在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • Vim 编辑器功能强大,但其默认的配色方案往往不尽如人意,尤其是注释颜色为蓝色时,对眼睛极为不友好。为了提升编程体验,自定义配色方案显得尤为重要。通过合理调整颜色,不仅可以减轻视觉疲劳,还能显著提高编码效率和兴趣。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在分析和解决 Keepalived VIP 漂移故障的过程中,我们发现主备节点配置如下:主节点 IP 为 172.16.30.31,备份节点 IP 为 172.16.30.32,虚拟 IP 为 172.16.30.10。故障表现为监控系统显示 Keepalived 主节点状态异常,导致 VIP 漂移到备份节点。通过详细检查配置文件和日志,我们发现主节点上的 Keepalived 进程未能正常运行,最终通过优化配置和重启服务解决了该问题。此外,我们还增加了健康检查机制,以提高系统的稳定性和可靠性。 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
author-avatar
HuPangpang_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有