?? manageusers.aspx.cs
字號(hào):
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;
using System.Web.Security;
namespace BronzeMonkey.GeneralTaskList
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.LinkButton lnkCreateUser;
protected System.Web.UI.WebControls.LinkButton lnkLogOff;
private TaskList tl = new TaskList();
protected System.Web.UI.WebControls.TextBox txtUserName;
protected System.Web.UI.WebControls.TextBox txtPassword1;
protected System.Web.UI.WebControls.TextBox txtPassword2;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
protected System.Web.UI.WebControls.CompareValidator CompareValidator1;
protected System.Web.UI.WebControls.Button btnCreateUser;
protected System.Web.UI.WebControls.Panel pnlCreateUser;
protected System.Web.UI.WebControls.LinkButton lnkUserProperties;
protected System.Web.UI.WebControls.RequiredFieldValidator rf1;
protected System.Web.UI.WebControls.Panel pnlUserProperties;
protected System.Web.UI.WebControls.Label lblUserPropertiesTotalTasks;
protected System.Web.UI.WebControls.Label lblUserPropertiesLastTaskModified;
protected System.Web.UI.WebControls.Label lblUserPropertiesLastTaskCreated;
protected System.Web.UI.WebControls.DropDownList cboUserList;
protected System.Web.UI.WebControls.Label lblUserPropertiesName;
protected System.Web.UI.WebControls.Label lblUserPropertiesAssignedTaskLists;
protected System.Web.UI.WebControls.Panel pnlChangeUsername;
protected System.Web.UI.WebControls.TextBox txtNewUserName;
protected System.Web.UI.WebControls.Button btnChangeUsername;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.Panel pnlChangePassword;
protected System.Web.UI.WebControls.TextBox txtOldPassword;
protected System.Web.UI.WebControls.TextBox txtNewPassword1;
protected System.Web.UI.WebControls.TextBox txtNewPassword2;
protected System.Web.UI.WebControls.Button btnChangePassword;
protected System.Web.UI.WebControls.LinkButton lnkUserPropertiesChangeUsername;
protected System.Web.UI.WebControls.LinkButton lnkUserPropertiesDeleteUser;
protected System.Web.UI.WebControls.RequiredFieldValidator OldPasswordValidator;
protected System.Web.UI.WebControls.CompareValidator PasswordMatchValidator;
protected System.Web.UI.WebControls.TextBox txtCurrentUserName;
protected System.Web.UI.WebControls.TextBox txtChangePasswordCurrentUserName;
protected System.Web.UI.WebControls.CheckBox chkIsAdministrator;
protected System.Web.UI.WebControls.CheckBox chkIsManager;
protected System.Web.UI.WebControls.LinkButton lnkUserPropertiesChangePassword;
protected System.Web.UI.WebControls.LinkButton lnkUserPropertiesChangeUserPermissions;
protected System.Web.UI.WebControls.Button btnChangePermissions;
protected System.Web.UI.WebControls.Panel pnlChangePermissions;
protected System.Web.UI.WebControls.CheckBoxList chkUserPermissions;
protected System.Web.UI.WebControls.Image imgManageTaskLists;
protected System.Web.UI.WebControls.LinkButton lnkManageTaskLists;
protected System.Web.UI.HtmlControls.HtmlTable tblManageTaskLists;
protected System.Web.UI.HtmlControls.HtmlGenericControl OtherTasksHeader;
private UserInformation CurrentUser = new UserInformation();
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
if (Session["CurrentUser"] == null)
Response.Redirect("login.aspx", false);
else
CurrentUser = (UserInformation)Session["CurrentUser"];
if (!Page.IsPostBack)
{
// Populate the task list drop down box
this.LoadUserListDropDown();
// Now load the task list properties part of the page
this.lnkUserProperties_Click(lnkUserProperties, new EventArgs());
// Add a javascript confirm for the "Delete this User" link. We want to warn them first!
lnkUserPropertiesDeleteUser.Attributes.Add(
"onclick",
@"return confirm (""Are you sure you want to delete this User?"");"
);
// Now hide stuff if the user doesn't have correct permissions
OtherTasksHeader.Visible = false;
if (CurrentUser.IsManager) OtherTasksHeader.Visible = true;
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lnkUserProperties.Click += new System.EventHandler(this.lnkUserProperties_Click);
this.lnkCreateUser.Click += new System.EventHandler(this.lnkCreateUser_Click);
this.lnkManageTaskLists.Click += new System.EventHandler(this.lnkManageTaskLists_Click);
this.lnkLogOff.Click += new System.EventHandler(this.lnkLogOff_Click);
this.cboUserList.SelectedIndexChanged += new System.EventHandler(this.cboUserList_SelectedIndexChanged);
this.lnkUserPropertiesChangeUsername.Click += new System.EventHandler(this.lnkUserPropertiesChangeUsername_Click);
this.lnkUserPropertiesChangePassword.Click += new System.EventHandler(this.lnkUserPropertiesChangePassword_Click);
this.lnkUserPropertiesChangeUserPermissions.Click += new System.EventHandler(this.lnkUserPropertiesChangeUserPermissions_Click);
this.lnkUserPropertiesDeleteUser.Click += new System.EventHandler(this.lnkUserPropertiesDeleteUser_Click);
this.chkUserPermissions.SelectedIndexChanged += new System.EventHandler(this.chkUserPermissions_SelectedIndexChanged);
this.btnChangePermissions.Click += new System.EventHandler(this.btnChangePermissions_Click);
this.btnChangeUsername.Click += new System.EventHandler(this.btnChangeUsername_Click);
this.btnChangePassword.Click += new System.EventHandler(this.btnChangePassword_Click);
this.btnCreateUser.Click += new System.EventHandler(this.btnCreateUser_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void lnkLogOff_Click(object sender, System.EventArgs e)
{
Session.Abandon();
System.Web.Security.FormsAuthentication.SignOut();
Response.Redirect("login.aspx", false);
}
private void btnCreateUser_Click(object sender, System.EventArgs e)
{
// Set up the user's username and password
UserInformation NewUser = new UserInformation(
0,
txtUserName.Text,
FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassword1.Text, "md5"),
chkIsManager.Checked,
chkIsAdministrator.Checked
);
// Call the web service to add this user
tl.AddUser(this.CurrentUser, NewUser);
// and show the user's properties
LoadUserListDropDown();
cboUserList.SelectedIndex = -1;
cboUserList.Items.FindByText(NewUser.Username).Selected = true;
lnkUserProperties_Click(sender, e);
}
private void lnkCreateUser_Click(object sender, System.EventArgs e)
{
HideAllOtherPanels(pnlCreateUser);
}
private void HideAllOtherPanels(Panel VisiblePanel)
{
if (VisiblePanel != null) VisiblePanel.Visible = true;
if (pnlCreateUser != VisiblePanel) pnlCreateUser.Visible = false;
if (pnlUserProperties != VisiblePanel) pnlUserProperties.Visible = false;
if (pnlChangeUsername != VisiblePanel) pnlChangeUsername.Visible = false;
if (pnlChangePassword != VisiblePanel) pnlChangePassword.Visible = false;
if (pnlChangePermissions != VisiblePanel) pnlChangePermissions.Visible = false;
}
/// <summary>
/// Retrieves a list of users from the database
/// </summary>
private void LoadUserListDropDown()
{
SqlDataReader dr = tl.GetUserList(CurrentUser);
cboUserList.Items.Clear();
while (dr.Read())
{
cboUserList.Items.Add(new ListItem(dr["Username"].ToString(), dr["UserID"].ToString()));
}
}
private void lnkUserProperties_Click(object sender, System.EventArgs e)
{
HideAllOtherPanels(pnlUserProperties);
ShowUserProperties(Convert.ToInt32(cboUserList.SelectedItem.Value));
}
private void cboUserList_SelectedIndexChanged(object sender, System.EventArgs e)
{
lnkUserProperties_Click(sender, e); //view the user properties for the newly selected user
}
private void ShowUserProperties(int UserID)
{
// First get the task list name
lblUserPropertiesName.Text = "User Properties - " + cboUserList.SelectedItem.Text;
// Second get the task lists this user is assignedto
SqlDataReader drTaskLists = tl.GetUserTaskLists(CurrentUser, Convert.ToInt32(cboUserList.SelectedItem.Value));
string AssignedTaskLists = "";
while (drTaskLists.Read())
{
AssignedTaskLists += drTaskLists["TaskListName"] + ", ";
}
if (AssignedTaskLists.Length > 0) AssignedTaskLists = AssignedTaskLists.Substring(0, AssignedTaskLists.Length - 2);
lblUserPropertiesAssignedTaskLists.Text = "<b>Assigned Task lists:</b> " + AssignedTaskLists;
//Now get the rest of the data by calling a stored proc
SqlDataReader drProperties = tl.GetUserProperties(CurrentUser, UserID);
DateTime LastModified = DateTime.Now;
DateTime LastCreated = DateTime.Now;
lblUserPropertiesTotalTasks.Text = "0";
lblUserPropertiesLastTaskModified.Text = String.Empty;
lblUserPropertiesLastTaskCreated.Text = String.Empty;
while (drProperties.Read())
{
lblUserPropertiesTotalTasks.Text = drProperties["TaskListItems"].ToString();
if (drProperties["LastModified"] != System.DBNull.Value)
{
LastModified = (DateTime)drProperties["LastModified"];
lblUserPropertiesLastTaskModified.Text = LastModified.ToString("MM/dd/yy hh:mm");
}
if (drProperties["LastCreated"] != System.DBNull.Value)
{
LastCreated = (DateTime)drProperties["LastCreated"];
lblUserPropertiesLastTaskCreated.Text = LastCreated.ToString("MM/dd/yy hh:mm");
}
}
}
private void btnChangeUsername_Click(object sender, System.EventArgs e)
{
// First retrieve a user object from the database for the user we want to modify
UserInformation OldUser = tl.GetUserItem(CurrentUser, Convert.ToInt32(cboUserList.SelectedItem.Value));
// Then change it's user name
UserInformation NewUser = new UserInformation(
OldUser.UserID,
txtNewUserName.Text,
OldUser.PasswordHash,
OldUser.IsManager,
OldUser.IsAdministrator
);
// And let the web service change it
tl.ModifyUser(CurrentUser, OldUser, NewUser);
// Now refresh the screen by reloading the user drop down, and going to user properties
LoadUserListDropDown();
// And select the proper user out of the drop down list
cboUserList.SelectedIndex = -1;
cboUserList.Items.FindByText(NewUser.Username).Selected = true;
lnkUserProperties_Click(sender, e);
}
private void btnChangePassword_Click(object sender, System.EventArgs e)
{
UserInformation OldUser = tl.GetUserItem(CurrentUser, Convert.ToInt32(cboUserList.SelectedItem.Value));
// If they didn't enter the right password, bomb out
if (FormsAuthentication.HashPasswordForStoringInConfigFile(txtOldPassword.Text, "md5") != OldUser.PasswordHash)
{
OldPasswordValidator.IsValid = false;
return;
}
// Then change it's password
UserInformation NewUser = new UserInformation(
OldUser.UserID,
OldUser.Username,
FormsAuthentication.HashPasswordForStoringInConfigFile(txtNewPassword1.Text, "md5"),
OldUser.IsManager,
OldUser.IsAdministrator
);
// And let the web service change it
tl.ModifyUser(CurrentUser, OldUser, NewUser);
lnkUserProperties_Click(sender, e);
}
private void lnkUserPropertiesChangeUsername_Click(object sender, System.EventArgs e)
{
HideAllOtherPanels(pnlChangeUsername);
txtCurrentUserName.Text = cboUserList.SelectedItem.Text;
txtNewUserName.Text = String.Empty;
}
private void lnkUsrePropertiesChangePassword_Click(object sender, System.EventArgs e)
{
HideAllOtherPanels(pnlChangePassword);
txtChangePasswordCurrentUserName.Text = cboUserList.SelectedItem.Text;
txtOldPassword.Text = String.Empty;
txtNewPassword1.Text = String.Empty;
txtNewPassword2.Text = String.Empty;
}
private void lnkUserPropertiesDeleteUser_Click(object sender, System.EventArgs e)
{
tl.DeleteUser(CurrentUser, tl.GetUserItem(CurrentUser, Convert.ToInt32(cboUserList.SelectedItem.Value)));
LoadUserListDropDown();
lnkUserProperties_Click(sender, e);
}
private void lnkUserPropertiesChangeUserPermissions_Click(object sender, System.EventArgs e)
{
HideAllOtherPanels(pnlChangePermissions);
UserInformation ThisUser = tl.GetUserItem(CurrentUser, Convert.ToInt32(cboUserList.SelectedItem.Value));
chkUserPermissions.Items.FindByValue("Administrator").Selected = ThisUser.IsAdministrator;
chkUserPermissions.Items.FindByValue("Manager").Selected = ThisUser.IsManager;
}
private void btnChangePermissions_Click(object sender, System.EventArgs e)
{
UserInformation OldUser = tl.GetUserItem(CurrentUser, Convert.ToInt32(cboUserList.SelectedItem.Value));
UserInformation NewUser = new UserInformation(
OldUser.UserID,
OldUser.Username,
OldUser.PasswordHash,
chkUserPermissions.Items.FindByValue("Manager").Selected,
chkUserPermissions.Items.FindByValue("Administrator").Selected
);
tl.ModifyUser(CurrentUser, OldUser, NewUser);
lnkUserProperties_Click(sender, e);
}
private void lnkManageTaskLists_Click(object sender, System.EventArgs e)
{
Response.Redirect("ManageTaskList.aspx", false);
}
private void lnkUserPropertiesChangePassword_Click(object sender, System.EventArgs e)
{
HideAllOtherPanels(pnlChangePassword);
UserInformation ThisUser = tl.GetUserItem(CurrentUser, Convert.ToInt32(cboUserList.SelectedItem.Value));
txtChangePasswordCurrentUserName.Text = ThisUser.Username;
}
private void chkUserPermissions_SelectedIndexChanged(object sender, System.EventArgs e)
{
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -