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

目录

一、效果:

 二、代码分布:

 三、介绍

四、遇到的问题:


 

一、效果:

黑河学院ASP.NET程序设计大作业(3)--登录及账号密码的CURD_第1张图片

 黑河学院ASP.NET程序设计大作业(3)--登录及账号密码的CURD_第2张图片

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

 黑河学院ASP.NET程序设计大作业(3)--登录及账号密码的CURD_第4张图片

 二、代码分布:

黑河学院ASP.NET程序设计大作业(3)--登录及账号密码的CURD_第5张图片

 三、介绍

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("");
                    username.Text="";
                    pw1.Text="";
                    pwd2.Text="";
                    //将头像上传指定的images文件夹中
                    FileUpload1.SaveAs(Server.MapPath("images/")+FileUpload1.FileName);
                }
            
            }
            else
            {

                Response.Write("");
            
            
            }
        
        
        }
        else
        {
            Response.Write("");
        
        }
    }
}

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("window.location.href='userdelete.aspx'");
            
            }
        }
        else
        {
            Response.Write("");
        
        }


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

                    }

                }
                else
                {

                    Response.Write("");
                }

            }
            else
            {
                Response.Write("");

            }

        }
         //  普通用户登录,只能修改自己的密码
        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("");                       
                        //Response.Redirect("login.aspx");
                    }

                }
                else
                {

                    Response.Write("");
                }

            }
            else
            {
                Response.Write("");

            }
        }

        else
        {
            Response.Write("");

        }

    }
}

四、遇到的问题:

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

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

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

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

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

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

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

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

黑河学院ASP.NET程序设计大作业(3)--登录及账号密码的CURD_第6张图片

 解决办法:

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

 

 

 

你可能感兴趣的:(asp.net大作业,asp.net,课程设计,后端)