ASP.net网站的注册、登录和密码修改的操作详解
一、进入注册、登录和密码修改操作详解
ASP.net网站为用户提供不同权限状态下的操作界面。根据用户登录状态,页面会显示不同的选项。
已登录用户的操作
图1 登录后操作界面
当用户已登录系统时,会显示以下内容和功能:
1. 欢迎信息
页面顶部显示欢迎语句:
“你好, 用户名!”
其中 用户名
是当前登录的用户名称。
2. 注销操作
页面提供一个 注销按钮:
- 操作步骤:
- 点击 “注销” 按钮。
- 系统将调用
Identity/Account/LogOut
地址的后端接口,注销当前用户。 - 用户注销成功后,页面会重定向到登录页面。
3. 修改密码
页面提供一个 密码修改按钮:
- 操作步骤:
- 点击 “密码修改” 按钮。
- 系统跳转到密码修改页面(
passwordchange
地址)。 - 在新页面输入相关信息以完成密码修改。
4. 当前用户初始化
如果系统未检测到当前用户信息,则会执行以下逻辑:
- 初始化当前登录用户信息。
- 使用
ProtectedSessionStore
将用户身份名称存储在会话中。
未登录用户的操作
图2 登录前操作界面
当用户未登录系统时,会显示以下内容和功能:
1. 登录操作
页面提供一个 登录按钮:
- 操作步骤:
- 点击 “登录” 按钮。
- 系统跳转到登录页面(
login
地址)。 - 输入登录凭据后完成登录。
2. 注册功能(可选)
如果系统配置允许用户注册,则页面会显示一个 注册按钮:
- 操作步骤:
- 点击 “注册” 按钮。
- 系统跳转到注册页面(
register
地址)。 - 按照注册页面的提示填写信息,完成注册。
注意事项
-
按钮操作的结果:
- 注销:清除当前用户会话并重定向到登录页面。
- 密码修改:仅针对已登录用户,未登录用户无权访问该页面。
- 注册:功能显示与否由
允许用户注册的系统功能参数设置
决定。
-
用户初始化的自动化处理:
- 系统会检查当前登录用户是否已存在于
当前登录用户集合
中。如果不存在,则自动初始化用户信息并存储到会话中。
- 系统会检查当前登录用户是否已存在于
-
权限管理:
- 仅登录用户能看到 欢迎语句、注销按钮和密码修改按钮。
- 未登录用户仅能看到 登录和注册按钮(若允许注册)。
-
UI友好性:
- 所有按钮均为蓝色,风格一致,易于识别。
- 功能之间的逻辑分离清晰,操作简单直观。
二、ASP.net网站的注册操作详解
图3 注册界面
1. 进入注册页面
- 用户打开注册页面,会看到一个清晰分为两部分的界面:
- 左侧显示一张注册相关的图片(仅在大屏设备上可见)。
- 右侧为注册表单,用于输入注册信息。
2. 填写注册信息
在表单中依次填写以下信息:
-
用户名
- 输入你的用户名,通常为有效的邮箱地址。
- 用户名必须唯一,如果已被注册,会收到“注册失败,用户名已经存在!”的提示。
-
密码
- 输入你的账户密码,建议使用复杂密码(字母、数字、特殊字符的组合)。
- 确保密码符合系统要求,否则会注册失败。
-
确认密码
- 再次输入与你密码相同的内容,用于确认密码输入无误。
- 如果密码和确认密码不一致,系统将提示“注册失败,密码和确认密码不同!”。
-
注册口令
- 输入系统管理员提供的注册口令。此口令用于限制注册权限,防止未经授权的用户注册。
- 如果注册口令错误,系统将提示“注册失败,注册口令错误!”。
3. 提交注册信息
- 确认所有信息填写无误后,点击 “注册” 按钮。
- 系统会自动验证注册信息并尝试创建账户:
- 如果注册成功,系统会自动登录,并跳转到登录成功页面。
- 如果注册失败,页面会显示具体错误原因,例如密码复杂度不足或注册口令错误。
4. 取消操作
- 如果用户不想继续注册,可以点击 “取消” 按钮。
- 系统会清除当前操作,并导航回主页或基地址。
5. 完成注册与登录
- 注册成功后,用户的账户信息会自动保存到系统中,无需再次注册。
- 此外,系统会自动登录,用户可以立即开始使用系统提供的功能。
6. 常见问题及解决办法
-
用户名已被占用
- 尝试更换用户名,建议使用不同的邮箱地址。
-
密码和确认密码不一致
- 仔细检查两次输入是否完全一致。
-
注册口令错误
- 确保输入的是管理员提供的正确口令。
- 若不确定,请联系系统管理员。
-
登录失败
- 如果注册成功但无法登录,请检查用户名和密码是否正确。
- 如果提示账户被阻止,可能是账户被禁用,请联系管理员解决。
。三、ASP.net网站的登录操作详解
图4 登录界面
1. 登录界面
用户首次访问登录页面时,会看到一个包含用户名和密码输入框的表单。页面包括以下内容:
- 用户名:请输入注册时使用的电子邮件地址。
- 密码:请输入您的账户密码。
- 记住我(可选):如果您希望在下次访问时自动登录,可以勾选此选项。此选项仅在系统允许的情况下显示。
2. 登录过程
- 管理员账户:如果系统中不存在名为
admin
的账户,系统会自动创建一个默认的管理员账户,用户名为admin
,密码为123456
。此账户在单机模式下必需使用。 - 其他用户:如果您输入的账户信息与系统中的注册用户匹配,系统会验证您的登录信息。如果信息正确,将允许您登录。
- 登录失败:
- 如果用户名或密码错误,系统会提示 "登录失败,请检查你的用户名和密码!"。
- 如果您的账户被禁用,系统会提示 "您的帐户已被阻止!"。
- 在单机模式下,必须使用
admin
账户登录,非管理员账户将被拒绝登录。
3. 登录成功
成功登录后,系统会生成一个唯一的登录标识符(Key
),并将该标识符传递到会话中。然后,系统会重定向到主页面,用户可以继续使用系统功能。
4. 取消操作
如果用户决定取消登录操作,可以点击“取消”按钮,页面将返回到首页或其他指定页面。
5. 注册新账户
如果系统允许注册新用户,您可以通过点击 "立即注册" 链接进入注册页面并创建新账户。
注意事项
- 系统单机模式:在系统的单机模式下,只允许使用
admin
用户登录。普通用户将无法登录。 - 账户管理:管理员可以管理所有用户账户,包括创建、删除和禁用账户。
四、ASP.net网站的密码修改操作详解
图5 密码修改界面
以下是使用此密码修改页面的说明:
页面概览
该页面用于用户修改密码,由两部分组成:
- 左侧图片区域:仅在大屏幕设备上显示,展示一张与修改密码相关的图片。
- 右侧表单区域:用于用户填写信息并提交修改密码请求。
使用步骤
1. 确认用户名
- 页面顶部会显示当前登录的用户名,供用户确认。
2. 填写密码信息
- 原密码:输入您的当前密码以验证身份。
- 新密码:输入一个您希望使用的新密码。
- 确认新密码:再次输入新密码以确认其正确性。
3. 提交修改
- 点击 “保存修改” 按钮提交表单。
- 系统会验证输入的新密码与确认密码是否一致。
- 如果一致,系统将尝试更新您的密码。
- 如果更新成功,页面会自动跳转至主页面。
- 如果更新失败,会显示相应的错误信息。
4. 取消操作
- 如果您不想修改密码,可点击 “取消” 按钮,页面将返回主页面。
注意事项
-
密码验证:
- 原密码必须正确,否则无法进行修改。
- 新密码与确认密码必须一致,否则会提示“新密码和确认密码不同!”。
-
账户状态:
- 如果您的账户被阻止,将无法进行密码修改,并会提示“您的帐户已被阻止!”。
-
错误提示:
- 若用户名或原密码输入错误,会提示“登录失败,请检查你的用户名和密码!”。
其他功能
- 表单防止多次提交:表单设置了防止默认提交行为,确保功能运行稳定。
- 自动跳转:修改成功后,页面会跳转到主页面。
如果想看实际操作效果可以点击下面网站【信管通文件流转网站】,注意:仅能在台式机电脑的浏览器中浏览。
相关文章:

ASP.net网站的注册、登录和密码修改的操作详解
一、进入注册、登录和密码修改操作详解 ASP.net网站为用户提供不同权限状态下的操作界面。根据用户登录状态,页面会显示不同的选项。 已登录用户的操作 图1 登录后操作界面 当用户已登录系统时,会显示以下内容和功能: 1. 欢迎信息 页面顶部…...

2024.12.29(进程线程实现并发服务器)
作业 多进程多线程并发服务器实现一遍提交。 服务器 #include <myhead.h> #define PORT 12345 #define IP "192.168.124.123"void *fun(void *fd) {int newfd *(int *)fd;char buff[1024];while(1){int res recv(newfd,buff,sizeof(buff),0);if(res 0){p…...

如何在 Ubuntu 上安装 PyTorch
简介 PyTorch 因其易用性、动态计算图和高效性而日益流行,成为实现深度学习模型的首选。如果你想探索这个工具并学习如何在 Ubuntu 上安装 PyTorch,本指南将对你有所帮助! 在本教程中,我们将引导你完成在 Ubuntu 系统上使用 Pip…...

8-Gin 中间件 --[Gin 框架入门精讲与实战案例] 【文末有测试代码】
路由中间件 Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。它以性能好、中间件支持灵活著称,非常适合用来构建微服务或 RESTful API 服务。下面我将提供三个使用 Gin 的路由中间件的完整示例。 示例 1: 简单的日志记录中间件 这个中间件会在每个请求处理前后打…...

【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
目录 一、toString() 方法是啥? (一)默认的 toString() 方法 (二)toString() 方法的作用 二、为啥要重写 toString() 方法? (一)提高代码的可读性 (二)…...

【论文笔记】Contrastive Learning for Sign Language Recognition and Translation
🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Contrastive Learning for…...

Gitlab17.7+Jenkins2.4.91实现Fastapi/Django项目持续发布版本详细操作(亲测可用)
一、gitlab设置: 1、进入gitlab选择主页在左侧菜单的下面点击管理员按钮。 2、选择左侧菜单的设置,选择网络,在右侧选择出站请求后选择允许来自webhooks和集成对本地网络的请求 3、webhook设置 进入你自己的项目选择左侧菜单的设置ÿ…...
一起来看--红黑树
【欢迎关注编码小哥,学习更多实用的编程方法和技巧】 红黑树是一种自平衡的二叉搜索树,广泛应用于计算机科学中,尤其是在实现关联数组和集合时。它的设计旨在确保在最坏情况下,基本动态集合操作(如插入、删除和查找&am…...

SpringBoot整合篇 05、Springboot整合Redission
文章目录 前言Redission详细配置步骤pom依赖application.yaml配置类CacheConfigEnvironmentContext RedissionController单测 前言 本篇博客是SpringBoot整合Redission,若文章中出现相关问题,请指出! 所有博客文件目录索引:博客…...

供应链系统设计-供应链中台系统设计(六)- 商品中心概念篇
概述 我们在供应链系统设计-中台系统设计系列(五)- 供应链中台实践概述 中描述了什么是供应链中台,供应链中台主要包含了那些组成部门。包括业务中台、通用中台等概念。为了后续方便大家对于中台有更深入的理解,我会逐一针对中台…...

胡闹厨房练习(三)
ScriptableObject 一、初步了解 1、实质:是一种特殊类型的Unity对象, 2、作用:用于存储大量数据,而不必依附于游戏场景中的某个GameObject。 3、特点: 可以在不增加场景中对象数量的情况下,管理和存储复杂的数据结构、配置信息、游戏状态等。 4、适用:非常适合用来…...
关于ESD(静电放电)等级的划分
关于ESD(静电放电)等级的划分,主要依据不同的测试模型和测试标准。以下是对HBM(人体模型)和CDM(充电器件模型)两种测试模型下ESD等级划分的详细解释: HBM ESD等级划分 HBM ESD等级…...

探究步进电机与输入脉冲的关系
深入了解步进电机 前言一、 步进电机原理二、 细分三、脉冲数总结 前言 主要是探究以下内容: 1、步进电机的步进角。 2、什么是细分。 3、脉冲的计算。 最后再扩展以下STM32定时器的计算方法。 一、 步进电机原理 其实语言描述怎么样都不直观,我更建议…...

基于YOLOV5+Flask安全帽RTSP视频流实时目标检测
1、背景 在现代工业和建筑行业中,安全始终是首要考虑的因素之一。特别是在施工现场,工人佩戴安全帽是确保人身安全的基本要求。然而,人工监督难免会有疏漏,尤其是在大型工地或复杂环境中,确保每个人都佩戴安全帽变得非…...

Windows内置的服务器IIS(Internet Information Services)托管网站
一. 安装IIS 打开控制面板:在开始菜单搜索“控制面板”并打开它。程序和功能:点击“程序”然后选择“程序和功能”。启用或关闭Windows功能:在左侧菜单中选择“启用或关闭Windows功能”。查找并勾选IIS:在弹出的窗口中,…...
虚幻引擎结构之UObject
一. UObject 的介绍 UObject 是虚幻引擎中的核心基础类,所有其他游戏对象和资源类都直接或间接地继承自它。作为虚幻引擎的基石,UObject 提供了多项关键功能,包括内存管理、序列化、反射(introspection)、垃圾回收以及元数据支持。在虚幻引擎中,UObject 类的实例通常被称…...
js的Reflect对象
Reflect 对象是 JavaScript ES6 中引入的一个内建对象,它提供了一系列与对象操作相关的方法。这些方法与 Object 对象上的方法类似,但在行为上有一些差异,并且更加规范和统一。Reflect 对象并不是一个构造函数,不能被 new 操作符调…...
this指向了谁?
看函数在执行的时候是如何调用的, 1 如果这个函数是用普通函数调用模式来进行调用,它内部的this指向了window; 2 如果一个函数在调用的时候是通过对象方法模式来进行调用,则它内部的this就是我们的对象; 3 如果一个函数在调用的时候通过构…...

基于Resnet、LSTM、Shufflenet及CNN网络的Daily_and_Sports_Activities数据集仿真
在深度学习领域,不同的网络结构设计用于解决特定的问题。本文将详细分析四种主流网络结构:卷积神经网络(CNN)、残差网络(ResNet)、长短期记忆网络(LSTM)和洗牌网络(Shuff…...

mac系统vsCode中使用Better Comments在.vue文件里失效
问题:关于Better Comments默认在html、TS、JS中有效,在vue中无效,需要单独进行配置 windows系统可以参考友链Better Comments(注释高亮)在vue文件里失效的问题 关于Better Comments电脑的配置路径: Windows系统&…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...