📄 manageusers.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace MyStarterKit.Portal.Web
{
/// <summary>
/// ManageUsers 的摘要说明。
/// </summary>
public class ManageUsers : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox Email;
protected System.Web.UI.WebControls.TextBox Password;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.TextBox ConfirmPassword;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
protected System.Web.UI.WebControls.CompareValidator CompareValidator1;
protected System.Web.UI.WebControls.LinkButton UpdateUserBtn;
protected System.Web.UI.WebControls.DropDownList allRoles;
protected System.Web.UI.WebControls.LinkButton addExisting;
protected System.Web.UI.WebControls.DataList userRoles;
protected System.Web.UI.WebControls.LinkButton saveBtn;
protected System.Web.UI.HtmlControls.HtmlGenericControl title;
int userId = -1;
String userName = "";
private void Page_Load(object sender, System.EventArgs e)
{
// 用户角色为Admins的才能访问该管理模块,否则重定向到EditAccessDenied.aspx
if (PortalSecurity.IsInRoles("Admins") == false)
{
Response.Redirect("~/Admin/EditAccessDenied.aspx");
}
// 用户Id
if (Request.Params["userid"] != null)
{
userId = Int32.Parse(Request.Params["userid"]);
}
// 用户名称
if (Request.Params["username"] != null)
{
userName = (String)Request.Params["username"];
}
if (!Page.IsPostBack)
{
// userName等于空时为新用户
if (userName == "")
{
UsersDB users = new UsersDB();
// 添加新用户
int uid = -1;
int i = 0;
// 有重复的用户,就添加不成功,uid仍为-1,就在原有用户的基础上加1,直到成功为止
while (uid == -1)
{
String friendlyName = "New User created " + DateTime.Now.ToString();
userName = "New User " + i.ToString();
uid = users.AddUser(friendlyName, userName, "");
i++;
}
//再次重定向回用户管理页
Response.Redirect("~/Admin/ManageUsers.aspx?userId=" + uid + "&username=" + userName);
}
BindData();
}
}
/// <summary>
/// 保存对用户的修改
/// </summary>
/// <param name="Sender"></param>
/// <param name="e"></param>
private void Save_Click(Object Sender, EventArgs e)
{
// 获取管理标签的索引adminIndex,管理标签默认为最后一个
PortalSettings portalSettings = (PortalSettings) Context.Items["PortalSettings"];
int adminIndex = portalSettings.DesktopTabs.Count-1;
// 返回管理页
Response.Redirect("~/DesktopDefault.aspx?tabindex=" + adminIndex.ToString() + "&tabid=" + ((TabStripDetails)portalSettings.DesktopTabs[adminIndex]).TabId);
}
/// <summary>
/// 添加用户至此角色
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void AddRole_Click(Object sender, EventArgs e)
{
int roleId;
// 找到角色Id
roleId = Int32.Parse(allRoles.SelectedItem.Value);
// 添加用户角色关系
RolesDB roles = new RolesDB();
roles.AddUserRole(roleId, userId);
// 重新绑定
BindData();
}
/// <summary>
/// 提交名字与口令的更改
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UpdateUser_Click(Object sender, EventArgs e)
{
// 更新用户信息
UsersDB users = new UsersDB();
users.UpdateUser(userId, Email.Text, PortalSecurity.Encrypt(Password.Text));
// 再次重定向回用户管理页
Response.Redirect("~/Admin/ManageUsers.aspx?userId=" + userId + "&username=" + Email.Text);
}
/// <summary>
/// 删除用户角色关系
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UserRoles_ItemCommand(object sender, DataListCommandEventArgs e)
{
RolesDB roles = new RolesDB();
int roleId = (int) userRoles.DataKeys[e.Item.ItemIndex];
roles.DeleteUserRole(roleId, userId);
userRoles.EditItemIndex = -1;
BindData();
}
/// <summary>
/// 初始化页面控件
/// </summary>
private void BindData()
{
// 读取用户的Email
UsersDB users = new UsersDB();
SqlDataReader dr = users.GetSingleUser(userName);
dr.Read();
Email.Text = (String) dr["Email"];
dr.Close();
// 显示标题
if (userName != "")
{
title.InnerText = "正在修改的用户:" + userName;
}
// 获取用户的角色信息
userRoles.DataSource = users.GetRolesByUser(userName);
userRoles.DataBind();
// 从HttpContext中获取全局设置对象
PortalSettings portalSettings = (PortalSettings) Context.Items["PortalSettings"];
// 获取当前站点下的全部角色信息
RolesDB roles = new RolesDB();
allRoles.DataSource = roles.GetPortalRoles(portalSettings.PortalId);
allRoles.DataBind();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.UpdateUserBtn.Click += new System.EventHandler(this.UpdateUser_Click);
this.addExisting.Click += new System.EventHandler(this.AddRole_Click);
this.userRoles.ItemCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.UserRoles_ItemCommand);
this.saveBtn.Click += new System.EventHandler(this.Save_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -