⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 edituser.aspx.cs

📁 微软Crab框架源码(分布式结构设计),包括工作流
💻 CS
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Crab.Runtime.Contract;

public partial class Admin_Users_EditUser : PageBase 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!HasPriv())
        {
            lblErrMsg.Text = Resources.GlobalResources.NoPrivilege;
            return;
        }

        if (!IsPostBack)
        {
            string username = Request["username"];
            string returnUrl = Request["ReturnUrl"];
            ViewState["UserName"] = username;
            ViewState["ReturnUrl"] = returnUrl;
            MembershipUser user = null;
            user = string.IsNullOrEmpty(username) ? Membership.GetUser() 
                : Membership.GetUser((new Upn(base.TenantName, username)).ToString());
            if (user == null)
            {
                lblErrMsg.Text = string.Format(Resources.GlobalResources.UserNotExists, username);
                return;
            }

            Upn upn = new Upn(user.UserName);
            txtUserID.Text = upn.Username;
            GetUserInfo(user.UserName);
            BindRepeater(RepeaterRoles, user.UserName);
        }
    }

    private bool HasPriv()
    {
        string username = Request["username"];
        if (string.IsNullOrEmpty(username))
            return true; //edit the user himself
        return Roles.IsUserInRole(CrabApp.TenantRoles.Administrators.ToString());
    }
    /// <summary>
    /// Get the user infomation by user name
    /// </summary>
    /// <param name="user">user name </param>
    private void GetUserInfo(string user)
    {
        MembershipUser membUser = Membership.GetUser(user, true);
        txtEmail.Text = membUser.Email;
    }
    /// <summary>
    /// Bind repeater and check the user in role
    /// </summary>
    /// <param name="rp"></param>
    /// <param name="user"></param>
    private void BindRepeater(Repeater rp, string username)
    {
        string[] roles = Roles.GetAllRoles();
        IList<string> newRoles = new List<string>();
        Upn upn = new Upn(username);
        foreach (string role in roles)
        {
            if (role.ToLower() == CrabApp.TenantRoles.SysAdmin.ToString().ToLower())
                continue;
            else if (role.ToLower() == CrabApp.TenantRoles.Administrators.ToString().ToLower()
                && upn.Username.ToLower() == base.Username.ToLower())
                continue;
            newRoles.Add(role);
        }

        rp.DataSource = newRoles;
        rp.DataBind();
        for (int i = 0; i < rp.Items.Count; i++)
        {
            CheckBox ck = (CheckBox)rp.Items[i].FindControl("chbRoles");
            bool IsChked = Roles.IsUserInRole(username, ck.Text.ToString());
            if (IsChked)
            {
                ck.Checked = true;
            }
        }
    }
    protected void btnSaveButton_ServerClick(object sender, EventArgs e)
    {
        if (!HasPriv())
            return;
        try
        {
            string username = Request["username"];
            MembershipUser user = Membership.GetUser(new Upn(TenantName, username).ToString());
            if (user.Email != txtEmail.Text.Trim())
            {
                user.Email = txtEmail.Text.Trim();
                Membership.UpdateUser(user);
            }
            lblErrMsg.Text = Resources.GlobalResources.SuccessSave;
        }
        catch (Exception)
        {

            lblErrMsg.Text = Resources.GlobalResources.FailSave;
        }
    }

    protected void chbRoles_CheckedChanged(object sender, EventArgs e)
    {
        string membershipUserName = new Upn(TenantName, Request["username"]).ToString();
        if (string.IsNullOrEmpty(membershipUserName))
            membershipUserName = Membership.GetUser().UserName;
        CheckBox chkBox = sender as CheckBox;
        string roleName = chkBox.Text;
        if (chkBox.Checked)
        {
            if (!Roles.IsUserInRole(membershipUserName, roleName))
                Roles.AddUserToRole(membershipUserName, roleName);
        }
        else
        {
            if (Roles.IsUserInRole(membershipUserName, roleName))
                Roles.RemoveUserFromRole(membershipUserName, roleName);
        }
    }

    protected  void btnCancel_Click(object sender, EventArgs e)
    {
        Response.Redirect(ViewState["ReturnUrl"].ToString());
    }

    protected void btnEditProfile_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/EditProfile.aspx?username=" + Request["username"]);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -