Roles.RemoveUsersFromRole(String[], String) 方法    
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从指定的角色中移除指定的用户。
public:
 static void RemoveUsersFromRole(cli::array <System::String ^> ^ usernames, System::String ^ roleName);public static void RemoveUsersFromRole(string[] usernames, string roleName);static member RemoveUsersFromRole : string[] * string -> unitPublic Shared Sub RemoveUsersFromRole (usernames As String(), roleName As String)参数
- usernames
- String[]
一个字符串数组,其中包含要从指定角色中移除的用户名。
- roleName
- String
要将指定的用户从中移除的角色的名称。
例外
              roleName 为空字符串或者包含逗号 (,)。
- 或 -
              usernames 中的一个用户名是空字符串或包含逗号 (,)。
- 或 -
              usernames 包含重复的元素。
未启用角色管理。
示例
下面的代码示例使用 RemoveUsersFromRole 方法从角色中删除一个或多个用户。 有关启用角色管理的 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;
string[] users;
public void Page_Load()
{
  Msg.Text = "";
  if (!IsPostBack)
  {
    // Bind roles to ListBox.
    rolesArray = Roles.GetAllRoles();
    RolesListBox.DataSource = rolesArray;
    RolesListBox.DataBind();
  }
}
public void RolesListBox_OnSelectedIndexChanged(object sender, EventArgs args)
{
  // Bind users to ListBox.
  users = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value);
  UsersListBox.DataSource = users;
  UsersListBox.DataBind();
}
public void RemoveUsers_OnClick(object sender, EventArgs args)
{
  // Verify that at least one user and a role are selected.
  int[] user_indices = UsersListBox.GetSelectedIndices();
  if (user_indices.Length == 0)
  {
    Msg.Text = "Please select one or more users.";
    return;
  }
  if (RolesListBox.SelectedItem == null)
  {
    Msg.Text = "Please select a role.";
    return;
  }
  // Create list of users to be removed from the selected role.
  string[] usersList = new string[user_indices.Length];
  for (int i = 0; i < usersList.Length; i++)
  {
    usersList[i] = UsersListBox.Items[user_indices[i]].Value;
  }
  // Remove the users from the selected role.
  try
  {
    Roles.RemoveUsersFromRole(usersList, RolesListBox.SelectedItem.Value);  
    Msg.Text = "User(s) removed from Role.";
    // Rebind users to ListBox.
    users = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value);
    UsersListBox.DataSource = users;
    UsersListBox.DataBind();
  }
  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" AutoPostBack="true" 
                                    OnSelectedIndexChanged="RolesListBox_OnSelectedIndexChanged" 
                                    runat="server" Rows="8" /></td>
      <td valign="top">Users:</td>
      <td valign="top"><asp:ListBox id="UsersListBox" Rows="8" 
                                    SelectionMode="Multiple" runat="server" /></td>
      <td valign="top"><asp:Button Text="Remove User(s) from Role" id="RemoveUsersButton"
                                   runat="server" OnClick="RemoveUsers_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 String
Public Sub Page_Load()
  Msg.Text = ""
  If Not IsPostBack Then
    ' Bind roles to ListBox.
    rolesArray = Roles.GetAllRoles()
    RolesListBox.DataSource = rolesArray
    RolesListBox.DataBind()
  End If
End Sub
Public Sub RolesListBox_OnSelectedIndexChanged(sender As Object, args As EventArgs)
  ' Bind users to ListBox.
  users = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)
  UsersListBox.DataSource = users
  UsersListBox.DataBind()
End Sub
Public Sub RemoveUsers_OnClick(sender As Object, args As EventArgs)
  ' Verify that at least one user and a 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
  If RolesListBox.SelectedItem Is Nothing Then
    Msg.Text = "Please select a role."
    Return
  End If
  ' Create list of users to be removed from the selected role.
  Dim usersList(user_indices.Length - 1) As String
  For i As Integer = 0 To usersList.Length - 1
    usersList(i) = UsersListBox.Items(user_indices(i)).Value
  Next
  ' Remove the users from the selected role.
  Try
    Roles.RemoveUsersFromRole(usersList, RolesListBox.SelectedItem.Value)  
    Msg.Text = "User(s) removed from Role."
    ' Rebind users to ListBox.
    users = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)
    UsersListBox.DataSource = users
    UsersListBox.DataBind()
  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" AutoPostBack="true" 
                                    OnSelectedIndexChanged="RolesListBox_OnSelectedIndexChanged" 
                                    runat="server" Rows="8" /></td>
      <td valign="top">Users:</td>
      <td valign="top"><asp:ListBox id="UsersListBox" Rows="8" 
                                    SelectionMode="Multiple" runat="server" /></td>
      <td valign="top"><asp:Button Text="Remove User(s) from Role" id="RemoveUsersButton"
                                   runat="server" OnClick="RemoveUsers_OnClick" /></td>
    </tr>
  </table>
</form>
</body>
</html>
注解
方法 RemoveUsersFromRole 调用默认角色提供程序,以从数据源中的指定角色中删除指定用户。
如果应用程序使用 SqlRoleProvider 类,则调用 RemoveUsersFromRoles 方法期间执行的数据库更新将在事务中进行。 如果遇到错误(例如未处于指定角色的用户名),则会回滚事务,并且不执行任何更新。