Roles.AddUsersToRoles(String[], String[]) Méthode

Définition

Ajoute les utilisateurs spécifiés aux rôles spécifiés.

public static void AddUsersToRoles (string[] usernames, string[] roleNames);

Paramètres

usernames
String[]

Tableau de chaînes contenant les noms d'utilisateurs à ajouter aux rôles spécifiés.

roleNames
String[]

Tableau de chaînes contenant le nom des rôles auxquels les noms d’utilisateurs spécifiés doivent être ajoutés.

Exceptions

Un des rôles dans roleNames est null.

- ou -

L'un des utilisateurs de usernames est null.

Un des rôles dans roleNames est une chaîne vide ou contient une virgule (,).

- ou -

Un des utilisateurs dans usernames est une chaîne vide ou contient une virgule (,).

- ou -

roleNames contient un élément en double.

- ou -

usernames contient un élément en double.

La gestion des rôles n'est pas activée.

Exemples

L’exemple de code suivant ajoute un ou plusieurs utilisateurs à un ou plusieurs rôles. Pour obtenir un exemple de fichier Web.config qui permet la gestion des rôles, consultez Roles.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Web.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

string[] rolesArray;
MembershipUserCollection users;

public void Page_Load()
{
  Msg.Text = "";

  if (!IsPostBack)
  {
    // Bind roles to ListBox.

    rolesArray = Roles.GetAllRoles();
    RolesListBox.DataSource = rolesArray;
    RolesListBox.DataBind();

    // Bind users to ListBox.

    users = Membership.GetAllUsers();
    UsersListBox.DataSource = users;
    UsersListBox.DataBind();
  }
}


public void AddUsers_OnClick(object sender, EventArgs args)
{
  // Verify that at least one user and one role are selected.

  int[] user_indices = UsersListBox.GetSelectedIndices();

  if (user_indices.Length == 0)
  {
    Msg.Text = "Please select one or more users.";
    return;
  }

  int[] role_indices = RolesListBox.GetSelectedIndices();

  if (role_indices.Length == 0)
  {
    Msg.Text = "Please select one or more roles.";
    return;
  }


  // Create list of users to be added to the selected roles.

  string[] newusers = new string[user_indices.Length];

  for (int i = 0; i < newusers.Length; i++)
  {
    newusers[i] = UsersListBox.Items[user_indices[i]].Value;
  }


  // Create list of roles to be add the selected users to.

  string[] rolesList = new string[role_indices.Length];

  for (int i = 0; i < rolesList.Length; i++)
  {
    rolesList[i] = RolesListBox.Items[role_indices[i]].Value;
  }


  // Add the users to the selected role.

  try
  {
    Roles.AddUsersToRoles(newusers, rolesList);  
    Msg.Text = "User(s) added to Role(s).";
  }
  catch (HttpException e)
  {
    Msg.Text = e.Message;
  } 
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Role Membership</title>
</head>
<body>

<form runat="server" id="PageForm">
  <h3>Role Membership</h3>
  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
  <table cellpadding="3" border="0">
    <tr>
      <td valign="top">Roles:</td>
      <td valign="top"><asp:ListBox id="RolesListBox" runat="server" SelectionMode="Multiple"
                                    Rows="8" /></td>
      <td valign="top">Users:</td>
      <td valign="top"><asp:ListBox id="UsersListBox" DataTextField="Username" 
                                  Rows="8" SelectionMode="Multiple" runat="server" /></td>
      <td valign="top"><asp:Button Text="Add User(s) to Role(s)" id="AddUsersButton"
                                 runat="server" OnClick="AddUsers_OnClick" /></td>
    </tr>
  </table>
</form>

</body>
</html>

Remarques

La AddUsersToRoles méthode appelle le fournisseur de rôle par défaut pour associer les utilisateurs spécifiés aux rôles spécifiés au niveau de la source de données.

Si votre application utilise la SqlRoleProvider classe, les mises à jour de base de données qui sont effectuées pendant l’appel à la AddUsersToRoles méthode sont effectuées dans une transaction. Si une erreur est rencontrée, telle qu’un nom d’utilisateur qui se trouve déjà dans un rôle spécifié, la transaction est restaurée et aucune mise à jour n’est effectuée.

Notes

Les noms d’utilisateur et les noms de rôle ne peuvent pas contenir de virgules.

S’applique à

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Voir aussi