/// <summary>
/// 代表系统内置的角色
/// </summary>
public enum BuiltInRole
{
    /// <summary>
    /// 管理员角色
    /// </summary>
    Administrator=1,    /// <summary>
    /// 普通用户
    /// </summary>
    Normal,    /// <summary>
    /// 录入人员
    /// </summary>
    Writer,
    /// <summary>
    /// 编辑人员
    /// </summary>
    Editor,
    /// <summary>
    /// 审核人员
    /// </summary>
    Auditing,
    /// <summary>
    /// 签发人员
    /// </summary>
    Signatory
}这里面一共有6种类型,可多选,比如我在网站选择了录入人员和编辑人员,在数据库里面就会写下 3;4; 这种格式
3;4; 就代表了录入人员和编辑人员。我想把它显示在网页里面,比如 数据库里面一行是1;2;3;4 要显示出 管理员角色;普通用户;录入人员;编辑人员 这种样式。不知道我表达的明不明白,请大家帮帮忙啦。我已经写了一小段,但是不知道怎么判断还有没有别的值                    if (Session["InRoles"].ToString() == "2;") {                        this.Label11.Text = "普通用户";                    }

解决方案 »

  1.   

    switch(Session["InRoles"].ToString()){
     case "1":
        this.Label11.Text = "";
        break;
     case "2":
         this.Label11.Text = "";
        break;
    case "3":
         this.Label11.Text = "";
        break;
    case "4":
         this.Label11.Text = "";
        break;
    }
      

  2.   

    string[] idArray=Session["InRoles"].ToString().Split(',');
    然后循环这个数组
    根据role值拼接你的显示字符串 
      

  3.   

    string InRoles = "1;2;3;4";//得到角色
                    StringBuilder sb = new StringBuilder();
                    foreach (var item in InRoles.Split(';'))
                    {
                        switch (item)
                        {
                            case "1":
                                sb.Append("管理员;");
                                break;
                            case "2":
                                sb.Append("普通用户;");
                                break;
                        }
                    }
                    string _result = sb.ToString().TrimEnd(';');//管理员;普通用户
      

  4.   

     public string GetRole()
        {
            string roles = "";
            foreach (string role in Session["InRoles"].ToString().Split(';'))
            {
                switch (role)
                {
                    case "1":
                        roles += "管理员角色;";
                        break;
                    case "2":
                        roles += "普通用户;";
                        break;
                    case "3":
                        roles += "录入人员;";
                        break;
                    case "4":
                        roles += "编辑人员;";
                        break;
                    case "5":
                        roles += "审核人员;";
                        break;
                    case "6":
                        roles += "签发人员;";
                        break;            }
            }
            return  roles.TrimEnd(';');
        }
    是这个意思?
      

  5.   

    ID Account     InRoles
    1 admin       1;
    2 system      1;2;3;
    3 Anonymous   
    4 test        2;3;4;
    5 111111      3;5;
    各位,在数据库里面是这样格式的,不过每次只列出一个用户的InRoles就可以了
    比如 现在我登录的帐号是test  网页上的Label就要显示出 普通用户;录入人员;编辑人员
      

  6.   

    public string GetRole(string InRoles)
        {
            string roles = "";
            foreach (string role in InRoles.Split(';'))
            {
                switch (role)
                {
                    case "1":
                        roles += "管理员角色;";
                        break;
                    case "2":
                        roles += "普通用户;";
                        break;
                    case "3":
                        roles += "录入人员;";
                        break;
                    case "4":
                        roles += "编辑人员;";
                        break;
                    case "5":
                        roles += "审核人员;";
                        break;
                    case "6":
                        roles += "签发人员;";
                        break;            }
            }
            return  roles.subString(0,roles.length-1);
        }
    +
    这个就行,你把从数据库里取出的值,用这个方法,处理一下就行了