다음을 통해 공유


Roles.AddUsersToRoles(String[], String[]) 메서드

정의

지정된 역할에 지정된 사용자를 추가합니다.

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

매개 변수

usernames
String[]

지정된 역할에 추가할 사용자 이름으로 이루어진 문자열 배열입니다.

roleNames
String[]

지정된 사용자 이름을 추가할 역할 이름으로 이루어진 문자열 배열입니다.

예외

roleNames의 역할 중 하나가 null인 경우

또는

usernames의 사용자 중 하나가 null인 경우

roleNames의 역할 중 하나가 빈 문자열이거나 쉼표(,)를 포함하는 경우

또는

usernames의 사용자 중 하나가 빈 문자열이거나 쉼표(,)를 포함하는 경우

또는

roleNames에 중복 요소가 포함된 경우

또는

usernames에 중복 요소가 포함된 경우

역할 관리가 사용되지 않는 경우

예제

다음 코드 예제에서는 하나 이상의 역할에 하나 이상의 사용자를 추가합니다. 역할 관리를 사용 하도록 설정 하는 Web.config 파일의 예제를 참조 하세요. 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>

설명

메서드는 AddUsersToRoles 기본 역할 공급자를 호출하여 지정된 사용자를 데이터 원본의 지정된 역할에 연결합니다.

애플리케이션에서 사용 하는 경우는 SqlRoleProvider 클래스를 호출 하는 동안 수행 되는 데이터베이스 업데이트는 AddUsersToRoles 메서드는 트랜잭션 내에서 이루어집니다. 오류가 발생 하는 경우 지정된 된 역할에 이미 있는 사용자 이름을 같은 트랜잭션이 롤백되고 업데이트가 수행 되지 않습니다.

참고

사용자 이름과 역할 이름에 쉼표를 포함할 수 없습니다.

적용 대상

추가 정보