AuthorizationStoreRoleProvider.AddUsersToRoles(String[], String[]) Metoda

Definice

Přidá zadaná uživatelská jména do každé ze zadaných rolí.

public:
 override void AddUsersToRoles(cli::array <System::String ^> ^ usernames, cli::array <System::String ^> ^ roleNames);
public override void AddUsersToRoles(string[] usernames, string[] roleNames);
override this.AddUsersToRoles : string[] * string[] -> unit
Public Overrides Sub AddUsersToRoles (usernames As String(), roleNames As String())

Parametry

usernames
String[]

Pole řetězců uživatelských jmen, která se mají přidat do zadaných rolí.

roleNames
String[]

Pole řetězců názvů rolí pro přidání zadaných uživatelských jmen.

Výjimky

Jedno ze zadaných uživatelských jmen je null.

nebo

Jedním ze zadaných názvů rolí je null.

nebo

usernames je null.

nebo

roleNames je null.

Jedno ze zadaných uživatelských jmen je prázdný řetězec nebo obsahuje čárku (,).

nebo

Jeden ze zadaných názvů rolí je prázdný řetězec nebo obsahuje čárku (,).

nebo

usernames obsahuje duplicitní prvek.

nebo

roleNames obsahuje duplicitní prvek.

Nakonfigurováno applicationName nebylo nalezeno.

nebo

Nakonfigurováno scopeName nebylo nalezeno.

nebo

Modul runtime authorization-manager není na serveru nainstalován.

Atribut connectionStringName odkazuje na připojovací řetězec na soubor, který neexistuje.

Instance AuthorizationStoreRoleProvider je nakonfigurovaná s úložištěm zásad založeným na souborech a přístup pro čtení k souboru není povolen na aktuální úrovni důvěryhodnosti.

Příklady

Následující příklad kódu přidá jednoho nebo více uživatelů do role nebo odebere uživatele z role. Příklad souboru Web.config, který umožňuje správu rolí, najdete v tématu AuthorizationStoreRoleProvider.


<%@ 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;
  string[] usersInRole;

  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();
    }

    if (RolesListBox.SelectedItem != null)
    {
      // Show users in role. Bind user list to GridView.

      usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value);
      UsersInRoleGrid.DataSource = usersInRole;
      UsersInRoleGrid.DataBind();
    }
  }


  public void AddUsers_OnClick(object sender, EventArgs args)
  {
    // Verify that a role is selected.

    if (RolesListBox.SelectedItem == null)
    {
      Msg.Text = "Please select a role.";
      return;
    }


    // Verify that at least one user is selected.

    if (UsersListBox.SelectedItem == null)
    {
      Msg.Text = "Please select one or more users.";
      return;
    }


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

    string[] newusers = new string[UsersListBox.GetSelectedIndices().Length];

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


    // Add the users to the selected role.

    try
    {
      Roles.AddUsersToRole(newusers, RolesListBox.SelectedItem.Value);

      // Re-bind users in role to GridView.

      usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value);
      UsersInRoleGrid.DataSource = usersInRole;
      UsersInRoleGrid.DataBind();
    }
    catch (Exception e)
    {
      Msg.Text = e.Message;
    }
  }


  public void UsersInRoleGrid_RemoveFromRole(object sender, GridViewCommandEventArgs args)
  {
    // Get the selected user name to remove.

    int index = Convert.ToInt32(args.CommandArgument);

    string username = ((DataBoundLiteralControl)UsersInRoleGrid.Rows[index].Cells[0].Controls[0]).Text;


    // Remove the user from the selected role.

    try
    {
      Roles.RemoveUserFromRole(username, RolesListBox.SelectedItem.Value);
    }
    catch (Exception e)
    {
      Msg.Text = "An exception of type " + e.GetType().ToString() +
                 " was encountered removing the user from the role.";
    }


    // Re-bind users in role to GridView.

    usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value);
    UsersInRoleGrid.DataSource = usersInRole;
    UsersInRoleGrid.DataBind();
  }



</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" Rows="8" AutoPostBack="true" /></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" ID="AddUsersButton" runat="server" OnClick="AddUsers_OnClick" /></td>
      </tr>
      <tr>
        <td valign="top">
          Users In Role:</td>
        <td valign="top">
          <asp:GridView runat="server" CellPadding="4" ID="UsersInRoleGrid" AutoGenerateColumns="false"
            GridLines="None" CellSpacing="0" OnRowCommand="UsersInRoleGrid_RemoveFromRole">
            <HeaderStyle BackColor="navy" ForeColor="white" />
            <Columns>
              <asp:TemplateField HeaderText="User Name" >
                <ItemTemplate>
                  <%# Container.DataItem.ToString() %>
                </ItemTemplate>
              </asp:TemplateField>
              <asp:ButtonField Text="Remove From Role" ButtonType="Link" />
            </Columns>
          </asp:GridView>
        </td>
      </tr>
    </table>
  </form>
</body>
</html>

<%@ Page Language="VB" %>

<%@ 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">

  Dim rolesArray() As String
  Dim users As MembershipUserCollection
  Dim usersInRole() As String

  Public Sub Page_Load()

    Msg.Text = ""

    If Not IsPostBack Then
      ' Bind roles to ListBox.

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

      ' Bind users to ListBox.

      users = Membership.GetAllUsers()
      UsersListBox.DataSource = users
      UsersListBox.DataBind()
    End If

    If Not RolesListBox.SelectedItem Is Nothing Then
      ' Show users in role. Bind user list to GridView.

      usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)
      UsersInRoleGrid.DataSource = usersInRole
      UsersInRoleGrid.DataBind()
    End If

  End Sub


  Public Sub AddUsers_OnClick(ByVal sender As Object, ByVal args As EventArgs)

    ' Verify that a role is selected.

    If RolesListBox.SelectedItem Is Nothing Then
      Msg.Text = "Please select a role."
      Return
    End If


    ' Verify that at least one user is selected.

    If UsersListBox.SelectedItem Is Nothing Then
      Msg.Text = "Please select one or more users."
      Return
    End If


    ' Create list of users to be added to the selected role.

    Dim newusers(UsersListBox.GetSelectedIndices().Length - 1) As String

    For i As Integer = 0 To newusers.Length - 1
      newusers(i) = UsersListBox.Items(UsersListBox.GetSelectedIndices(i)).Value
    Next


    ' Add the users to the selected role.

    Try
      Roles.AddUsersToRole(newusers, RolesListBox.SelectedItem.Value)

      ' Re-bind users in role to GridView.

      usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)
      UsersInRoleGrid.DataSource = usersInRole
      UsersInRoleGrid.DataBind()
    Catch e As Exception
      Msg.Text = e.Message
    End Try

  End Sub


  Public Sub UsersInRoleGrid_RemoveFromRole(ByVal sender As Object, ByVal args As GridViewCommandEventArgs)

    ' Get the selected user name to remove.

    Dim index As Integer = Convert.ToInt32(args.CommandArgument)

    Dim username As String = (CType(UsersInRoleGrid.Rows(index).Cells(0).Controls(0), DataBoundLiteralControl)).Text


    ' Remove the user from the selected role.

    Try
      Roles.RemoveUserFromRole(username, RolesListBox.SelectedItem.Value)
    Catch e As Exception
      Msg.Text = "An exception of type " & e.GetType().ToString() & _
                 " was encountered removing the user from the role."
    End Try

    ' Re-bind users in role to GridView.

    usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)
    UsersInRoleGrid.DataSource = usersInRole
    UsersInRoleGrid.DataBind()

  End Sub



</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" Rows="8" AutoPostBack="true" /></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" ID="AddUsersButton" runat="server" OnClick="AddUsers_OnClick" /></td>
      </tr>
      <tr>
        <td valign="top">
          Users In Role:</td>
        <td valign="top">
          <asp:GridView runat="server" CellPadding="4" ID="UsersInRoleGrid" AutoGenerateColumns="false"
            GridLines="None" CellSpacing="0" OnRowCommand="UsersInRoleGrid_RemoveFromRole">
            <HeaderStyle BackColor="navy" ForeColor="white" />
            <Columns>
              <asp:TemplateField HeaderText="User Name" >
                <ItemTemplate>
                  <%# Container.DataItem.ToString() %>
                </ItemTemplate>
              </asp:TemplateField>
              <asp:ButtonField Text="Remove From Role" ButtonType="Link" />
            </Columns>
          </asp:GridView>
        </td>
      </tr>
    </table>
  </form>
</body>
</html>

Poznámky

Metoda AddUsersToRoles je volána třídou Roles pro přidružení jednoho nebo více uživatelů k jednomu nebo více rolím v úložišti dat správce autorizace zadaného v konfiguračním souboru aplikace ASP.NET (Web.config). Tato metoda je volána Roles.AddUserToRolepomocí , Roles.AddUserToRoles, Roles.AddUsersToRolea Roles.AddUsersToRoles metody Roles třídy.

Platí pro

Viz také