黑河学院ASP.NET程序设计大作业(3)--登录及账号密码的CURD

news2024/9/24 11:30:37

目录

一、效果:

 二、代码分布:

 三、介绍

        1.添加用户

        2.删除用户:

        3.修改密码:

四、遇到的问题:


一、效果:

 

 

 二、代码分布:

 三、介绍

1.添加用户

判断是否是管理员,只有管理员才可以对用户进行添加,普通用户则会报错;

添加用户,username是主键,添加时不可以重复;

添加时,需要判断密码和确认密码是否一致。

userAdd.aspx.cs代码为:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class admin_userAdd : System.Web.UI.Page
{//实例化
    dataOperate mydo = new dataOperate();
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {//判断是否为admin,有权添加用户
        if(Session["username"].ToString()=="admin")
        {//判断密码与确认密码是否相同
            if(pw1.Text==pwd2.Text)
            {
                string sql = "insert into adminss values('"+ username.Text +"','"+ pw1.Text +"','images/"+ FileUpload1.FileName +"')";
                if(mydo.addDeleteUpdataData(sql))
                {
                    Response.Write("<script>alert('添加成功!')</script>");
                    username.Text="";
                    pw1.Text="";
                    pwd2.Text="";
                    //将头像上传指定的images文件夹中
                    FileUpload1.SaveAs(Server.MapPath("images/")+FileUpload1.FileName);
                }
            
            }
            else
            {

                Response.Write("<script>alert('确认密码与密码不相同,请重新输入!')</script>");
            
            
            }
        
        
        }
        else
        {
            Response.Write("<script>alert('你不是admin,无权添加其他用户!')</script>");
        
        }
    }
}
2.删除用户:

需要先获取所有的用户;

删除时判断是否是管理员权限,只有管理员可以进行删除;

删除时判断删除的是否为管理员,自己不能删除自己;

删除后页面重新加载一次,更新数据。

userdelete.aspx.cd代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class admin_userdelete : System.Web.UI.Page
{//实例化
    dataOperate mydo = new dataOperate();
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            bindtogriview1();
        }

    }
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        if(Session["username"].ToString()=="admin")
        {
            string sql = "delete from adminss where username='"+ GridView1.DataKeys[e.RowIndex].Value +"'";
            if(mydo.addDeleteUpdataData(sql))
            {
                Response.Write("<script>alert('删除成功!')</script>window.location.href='userdelete.aspx'");
            
            }
        }
        else
        {
            Response.Write("<script>alert('你不是admin,无权删除其他用户!')</script>");
        
        }


    }
    protected void bindtogriview1()
    {
        string sql = "select * from adminss where username not like 'admin'";
        GridView1.DataSource = mydo.rows(sql,"guanliyuan11").DefaultView;
        GridView1.DataBind();
    
    
    }
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
}
3.修改密码:

修改时判断是否为管理员,管理员可以修改所有用户的密码;

修改时普通用户只能修改自己的密码;

修改时需要将用户名和原始密码与数据库中的信息进行比较,一致的话,才可以进行修改;

修改之后提示,修改成功,并且退出登录,重新登录。

yonghuxiugai.aspx.cs代码为:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;

public partial class admin_userxiugai : System.Web.UI.Page
{
    dataOperate mydo = new dataOperate();
    protected void Page_Load(object sender, EventArgs e)
    {
        
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Session["username"].ToString() == "admin")
        {

            //username.Text = Session["username"].ToString();
            if (pw2.Text == pw3.Text)
            {
                string sql = "select * from adminss where username='" + usern.Text + "' and password='" + pw1.Text + "'";
                OleDbDataReader dr = mydo.row(sql);
                if (dr.Read())
                {
                    string sql1 = "update adminss set [password]='" + pw2.Text + "' where [username] ='" + usern.Text + "'";
                    if (mydo.addDeleteUpdataData(sql1))
                    {
                        Response.Write("<script>alert('修改成功')</script>");

                    }

                }
                else
                {

                    Response.Write("<script>alert('密码不正确')</script>");
                }

            }
            else
            {
                Response.Write("<script>alert('密码不符')</script>");

            }

        }
         //  普通用户登录,只能修改自己的密码
        else if (Session["username"].ToString() == usern.Text)
        {
            if (pw2.Text == pw3.Text)
            {
                string sql = "select * from adminss where username='" + usern.Text + "' and password='" + pw1.Text + "'";
                OleDbDataReader dr = mydo.row(sql);
                if (dr.Read())
                {
                    string sql1 = "update adminss set [password]='" + pw2.Text + "' where [username] ='" + usern.Text + "'";
                    if (mydo.addDeleteUpdataData(sql1))
                    {
                        Response.Write("<script>alert('修改成功,请重新登录');top.location='login.aspx';</script>");                       
                        //Response.Redirect("login.aspx");
                    }

                }
                else
                {

                    Response.Write("<script>alert('密码不正确')</script>");
                }

            }
            else
            {
                Response.Write("<script>alert('密码不符')</script>");

            }
        }

        else
        {
            Response.Write("<script>alert('你不是admin或者本人,无权修改别人的密码!')</script>");

        }

    }
}

四、遇到的问题:

1.问题:修改密码的时候,修改完之后,数据库中的信息并不能及时修改,也没有修改成功

解决办法:更新数据库语句有错误,表名写错(太粗心啦)

update adminss set [password]='" + pw2.Text + "' where [username] ='" + usern.Text + "'

2.问题:修改密码时,一直报密码不正确错误,就是无法修改成功。

解决办法:多次查找,发现从数据库中获取到的数据不正确,只能获取到登录者的账号密码,所以只能修改自己的账号密码,将username.Text = Session["username"].ToString();代码删除,即可实现修改其他用户。随之又带来问题3.

3.问题:所有人都可以修改其他用户的信息,

解决办法:在修改之前先获取一下当前登录者的账号,判断是管理员还是普通用户,管理员可以修改,普通用户则只能修改自己的账号密码。

4.问题:修改之后退出登录,重新登录时,退出之后地址栏依旧是admin页面,但是中心部分已经换成了登录页,从中心部分进入之后就是嵌套页面 

 解决办法:

使用 top.location='xx.aspx'; 这条即可,之前用的是  Response.Redirect("login.aspx");这条语句。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/689476.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:用Python计算圆周率的两种方法

用Python计算圆周率的两种方法 圆周率&#xff08;π&#xff09;是一个非常重要的数学常数&#xff0c;被广泛应用于数学、计算机科学和工程学中。本文将介绍两种使用Python计算圆周率的方法&#xff1a;蒙特卡罗方法和Bailey–Borwein–Plouffe算法。 蒙特卡罗方法 蒙特卡…

C++笔记之字符指针和字符数组的区别

C笔记之字符指针char*和字符数组char[]的区别 code review! 文章目录 C笔记之字符指针char\*和字符数组char[]的区别1.char \[]和char \*的区别2.char\[]和char\*如何相互转换3.char\*,char\[ ],char\[20] 是字符串还是数组&#xff0c;哪一种长度是固定的&#xff1f;4.字符…

【软考网络管理员】2023年软考网管初级常见知识考点(20)- Web服务器配置

涉及知识点 网站的基本配置&#xff0c;虚拟目录的配置&#xff0c;Web服务器配置&#xff0c;虚拟主机的配置&#xff0c;站点安全的设置&#xff0c;HTTPS网站的配置&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总…

利用Django路由项的别名(name)对路由进行反向解析

在Django的函数path()中&#xff0c;可以给一条路由进行命名&#xff0c;然后在视图函数或模板HTML文件中进行调用&#xff0c;这样的好处是&#xff1a;只要路由的name不变&#xff0c;那么修改了URL具体的路由&#xff0c;也不用去更改视图函数或模板HTML中的相关代码&#x…

Redis7【① 概述 安装 配置】

1. Redis入门概述 1. Redis是什么 Redis全称 远程字典服务器&#xff08;Remote Dictionary Server&#xff09;&#xff0c;它是完全开源的&#xff0c;使用ANSIC语言编写遵守BSD协议&#xff0c;是一个高性能的基于内存的Key-Value数据库&#xff0c;提供了丰富的数据结构&…

基于VMD-SSA-LSTM的多维时序光伏功率预测MATLAB程序

基于VMD-SSA-LSTM的多维时序光伏功率预测MATLAB程序资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87950148参考文献&#xff1a; 《基于VMD-SSA-LSSVM的短期风电预测》 《基于改进鲸鱼优化算法的微网系统能量优化管理》 主要内容&#xff1a; 融合了两…

计算机毕业论文内容参考|基于Android的国际酒店预订APP的设计与实现

文章目录 导文摘要:前言:绪论:课题背景国内外现状与趋势课题内容相关技术与方法介绍:系统分析:系统设计:系统实现:系统测试:本文总结后续工作展望导文 计算机毕业论文内容参考|基于Android的国际酒店预订APP的设计与实现 摘要: 随着人们生活水平的提高和旅游业的迅速…

黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页

目录 一、建立数据库&#xff1a; 二、连接数据库&#xff1a; 三、获取所有的列表 四、实现分页 五、实现列表页和详细页的绑定 六、项目难点 一、建立数据库&#xff1a; 1.adminss表 2.columnss表设计及内容 3.messagess表设计及内容 二、连接数据库&#xff1a; 文件中A…

智能风扇语音控制新方案,高品质语音识别芯片NRK3303

随着人工智能技术的发展&#xff0c;人们可以使用语音助手随时随地进行语音控制电子设备。而针对风扇这种家居电器&#xff0c;智能语音控制的方案相对成熟&#xff0c;受到了越来越多用户的青睐。为了更好地提升用户体验&#xff0c;新一代智能风扇方案引进了语音识别芯片技术…

maven 导入本地jar、maven 安装本地jar

方式一、 将jar放入本地任意目录(不推荐) pom.xml <!-- groupId&#xff1a;cn.myCompany.myCommon 规则&#xff1a;公司性质.公司名.项目名或其它artifactId&#xff1a;jar包 自定义ID&#xff0c;通常与jar包名同名&#xff1b;pom通过groupIdartifactIdversion找到mav…

chatgpt赋能python:Python虚拟环境管理:让你的项目更加独立和可靠

Python虚拟环境管理&#xff1a;让你的项目更加独立和可靠 什么是Python虚拟环境? Python虚拟环境&#xff08;Virtual Environment&#xff09;是一种Python环境隔离的机制&#xff0c;它可以让你在同一个操作系统上创建多个Python环境&#xff0c;互不干扰。这意味着你可以…

【MATLAB第48期】基于MATLAB的REMR-LSTM多次循环递归拓展理论的长短期记忆网络LSTM回归预测模型,PCA预处理降维

【MATLAB第48期】基于MATLAB的REMR-LSTM多次循环递归拓展理论的长短期记忆网络LSTM回归预测模型&#xff0c;PCA预处理降维 在本文中&#xff0c;将展示一个使用多次循环递归拓展&#xff08;REMR&#xff09;理论来改进LSTM回归预测问题。 通过多次循环&#xff0c;优化训练集…

Linux下的tmux的使用

0.前言 您好&#xff0c;这里是limou3434&#xff0c;本次我将给您带来Linux下tmux的使用。 如果您感兴趣也可以看看我的其他内容。 1.tmux的基础概念 tmux是一款在Linux里运行在终端上的软件&#xff0c;可以使得终端具有强大的多任务管理功能&#xff08;以下是在Ubuntu环…

如何做好迭代回顾 1/4

迭代回顾(Retrospective)、二八原则、五个“为什么”(5 Why)、以数据说话、三点估算(PERT)等&#xff0c;大家都可能听过&#xff0c;在网上也能找到相关理论知识&#xff0c;但很多软件开发团队自以为了解&#xff0c;但其实是有误解。“如何做好迭代回顾”会利用一些实际团队…

Linux Mint 21.2 “Victoria “的测试版即将到来

导读Linux Mint 21.2 “Victoria “几乎已经准备就绪&#xff0c;主要开发者Clement Lefebvre证实&#xff0c;开发周期已经结束&#xff0c;这意味着测试版应该很快就会到来。 Linux Mint 21.2是Linux Mint 21系列的第二次更新&#xff0c;它基于Ubuntu 22.04 LTS&#xff08;…

Mybatis源码篇:Mybatis初始化过程分析

文章目录 1. Mybatis初始化过程简述2. Mybatis初始化源码分析2.1 Mybatis初始化时序图2.2 源码分析2.2.1 SqlSessionFactoryUtil测试类代码2.2.2 SqlSessionFactoryBuilder源码2.2.3 XMLConfigBuilder源码2.2.4 SqlSessionFactory相关属性2.2.5 SqlSession相关属性 3. 总结4. 使…

2:PCIe Header配置空间

目录 1.概述 2.Header Type0 2.1 HeaderType字段 2.2 Class寄存器 2.3 Cache Line Size 寄存器 2.4 Subsystem ID 和 Subsystem Vendor ID 寄存器 2.5 Capabilities Pointer 寄存器 2.6 Interrupt Line 寄存器 2.7 Interrupt Pin 寄存器 2.8 Base Address Registe…

el-select如何不显示value,显示value对应的label值

文章目录 select 显示如下发生错误的原因 select 显示如下 el-select在编辑调用的时候一直显示的不是label值&#xff0c;而是本身的value值。尝试了很多种方法&#xff0c;都没有解决。 正常的形式 错误的形式 发生错误的原因 显示不正常&#xff0c;多数是由于得到的数据…

人工智能期末复习(背题家的落幕)

文章目录 一、前言二、选择题&#xff08;10 X 2&#xff09;1、补充2、第一梯队⭐⭐⭐3、第二梯队⭐⭐4、第三梯队⭐ 三、判断题&#xff08;10 X 1&#xff09;1、错误的2、正确的 四、程序填空题&#xff08;10 X 3&#xff09;1、tensorflow搭建模型2、keras模型编译3、Pyt…

AI智慧安监视频融合平台EasyCVR播放HLS流出现报错404是什么原因?

EasyCVR平台支持多协议与多类型设备接入&#xff0c;具体包括国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等&#xff0c;能对外分发RTMP、RTSP、HTTP-FLV、WS-FLV、HLS、WebRTC等。平台既具备传统安防视频监控的能力&#xff0c;也能接入AI智能分析的…