Administrator\Friends\Departments为三种角色,写方法编辑三种角色,代码如下: public static void EditUsers(String userName, bool isApproved, bool isAdministrator, bool isFriends, bool isDepartments)
    {
        MembershipUser user = Membership.GetUser(userName);
        user.IsApproved =isApproved ;
        Membership.UpdateUser(user);        String[] roleArray = Roles.GetRolesForUser(userName);
       
        if (roleArray.Length == 1)
        {
            if (roleArray[0] == "Administrators")  Roles.RemoveUserFromRole(userName,"Administrators");
            if (roleArray[0] == "Friends") Roles.RemoveUserFromRole (userName, "Friends");
            if (roleArray[0] == "Departments") Roles.RemoveUserFromRole(userName, "Departments");
        }
        else if (roleArray.Length == 2)
        {
            if (roleArray[0] == "Administrators") Roles.RemoveUserFromRole(userName,"Administrators");
            if (roleArray[1] == "Friends")   Roles.RemoveUserFromRole (userName, "Friends");
            //if (roleArray[2] == "Departments") Roles.RemoveUserFromRole(userName, "Departments");
        }
        else if (roleArray.Length == 3)
        {
            if (roleArray[0] == "Administrators") Roles.RemoveUserFromRole(userName, "Administrators");
            if (roleArray[1] == "Friends") Roles.RemoveUserFromRole(userName, "Friends");
            if (roleArray[2] == "Departments") Roles.RemoveUserFromRole(userName, "Departments");
        }        if (isAdministrator)  Roles.AddUserToRole(userName,"Administrators");
        
        if (isFriends) Roles.AddUserToRole(userName,"Friends");        if (isDepartments) Roles.AddUsersToRole(userName, "Departments");    }报错:错误 3 与“System.Web.Security.Roles.AddUsersToRole(string[], string)”最匹配的重载方法具有一些无效参数 D:\FSSAFE\App_Code\UserManager.cs 100 28 D:\FSSAFE\
错误 4 参数“1”: 无法从“string”转换为“string[]” D:\FSSAFE\App_Code\UserManager.cs 100 49 D:\FSSAFE\       请高手指导,参数重载到底哪里出错了?

解决方案 »

  1.   

    你是不是要用AddUserToRole,不是AddUsersToRole???
      

  2.   

    if (isFriends) Roles.AddUserToRole(userName,"Friends");if (isDepartments) Roles.AddUsersToRole(userName, "Departments");
      

  3.   

    ==。晕,还有点问题,当第二种情况,当用户角色为两种时,是否应该分开写?比如存在[Administrator,Friends]\[Administra,Departments]\[Friends,Departments]这三种情况?是否应该ELSE IF再写出其它两种情况?具体代码?请指导。