Roles.AddUsersToRoles(String[], String[]) 方法   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将指定的用户添加到指定的角色中。
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[] -> unitPublic Shared Sub AddUsersToRoles (usernames As String(), roleNames As String())参数
- usernames
- String[]
一个字符串数组,其中包含要添加到指定角色的用户名。
- roleNames
- String[]
一个字符串数组,其中包含要将指定用户名添加到的角色的名称。
例外
              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 方法期间执行的数据库更新将在事务中进行。 如果遇到错误(例如已处于指定角色的用户名),则会回滚事务,并且不执行任何更新。
注意
用户名和角色名称不能包含逗号。