目录
一、效果:
二、代码分布:
三、介绍
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");这条语句。