Aracılığıyla paylaş


Roles.AddUsersToRoles(String[], String[]) Yöntem

Tanım

Belirtilen kullanıcıları belirtilen rollere ekler.

public:
 static void AddUsersToRoles(cli::array <System::String ^> ^ usernames, cli::array <System::String ^> ^ roleNames);
public static void AddUsersToRoles (string[] usernames, string[] roleNames);
static member AddUsersToRoles : string[] * string[] -> unit
Public Shared Sub AddUsersToRoles (usernames As String(), roleNames As String())

Parametreler

usernames
String[]

Belirtilen rollere eklenecek kullanıcı adları dizesi dizisi.

roleNames
String[]

Belirtilen kullanıcı adlarının ekleneceği rol adlarının dize dizisi.

Özel durumlar

içindeki roleNames rollerden biri de şeklindedir null.

-veya-

içindeki usernames kullanıcılardan biri şeklindedir null.

içindeki roleNames rollerden biri boş bir dizedir veya virgül (,) içerir.

-veya-

içindeki usernames kullanıcılardan biri boş bir dize veya virgül (,) içeriyor.

-veya-

roleNames yinelenen bir öğe içeriyor.

-veya-

usernames yinelenen bir öğe içeriyor.

Rol yönetimi etkinleştirilmedi.

Örnekler

Aşağıdaki kod örneği bir veya daha fazla kullanıcıya bir veya daha fazla rol ekler. Rol yönetimini etkinleştiren bir Web.config dosyası örneği için bkz 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>
<%@ 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

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
End Sub


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

  ' Verify that at least one user and one role are selected.

  Dim user_indices() As Integer = UsersListBox.GetSelectedIndices()

  If user_indices.Length = 0 Then
    Msg.Text = "Please select one or more users."
    Return
  End If

  Dim role_indices() As Integer = RolesListBox.GetSelectedIndices()

  If role_indices.Length = 0 Then
    Msg.Text = "Please select one or more roles."
    Return
  End If


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

  Dim newusers(user_indices.Length - 1) As String

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


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

  Dim rolesList(role_indices.Length - 1) As String

  For i As Integer = 0 To rolesList.Length - 1
    rolesList(i) = RolesListBox.Items(role_indices(i)).Value
  Next


  ' Add the users to the selected role.

  Try
    Roles.AddUsersToRoles(newusers, rolesList)  
    Msg.Text = "User(s) added to Role(s)."
  Catch e As HttpException
    Msg.Text = e.Message
  End Try
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" 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>

Açıklamalar

yöntemi, AddUsersToRoles belirtilen kullanıcıları veri kaynağındaki belirtilen rollerle ilişkilendirmek için varsayılan rol sağlayıcısını çağırır.

Uygulamanız sınıfını SqlRoleProvider kullanıyorsa, yöntemine AddUsersToRoles çağrı sırasında gerçekleştirilen veritabanı güncelleştirmeleri bir işlem içinde yapılır. Zaten belirtilen bir rolde olan bir kullanıcı adı gibi bir hatayla karşılaşılırsa, işlem geri alınır ve güncelleştirme yapılmaz.

Not

Kullanıcı adları ve rol adları virgül içeremez.

Şunlara uygulanır

Ayrıca bkz.