Roles.RemoveUserFromRoles(String, String[]) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Usuwa określonego użytkownika z określonych ról.
public:
static void RemoveUserFromRoles(System::String ^ username, cli::array <System::String ^> ^ roleNames);
public static void RemoveUserFromRoles (string username, string[] roleNames);
static member RemoveUserFromRoles : string * string[] -> unit
Public Shared Sub RemoveUserFromRoles (username As String, roleNames As String())
Parametry
- username
- String
Użytkownik, który ma zostać usunięty z określonych ról.
- roleNames
- String[]
Tablica ciągów nazw ról, z których ma zostać usunięty określony użytkownik.
Wyjątki
Jedną z ról w pliku roleNames
jest pusty ciąg lub zawiera przecinek (,).
-lub-
username
jest pustym ciągiem lub zawiera przecinek (,).
-lub-
roleNames
zawiera zduplikowany element.
Zarządzanie rolami nie jest włączone.
Przykłady
W poniższym przykładzie kodu użyto RemoveUserFromRoles metody w celu usunięcia użytkownika z co najmniej jednej roli. Aby zapoznać się z przykładem pliku Web.config umożliwiającego zarządzanie rolami, zobacz 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.
users = Membership.GetAllUsers();
UsersListBox.DataSource = users;
UsersListBox.DataBind();
}
}
public void UsersListBox_OnSelectedIndexChanged(object sender, EventArgs args)
{
// Bind users to ListBox.
rolesArray = Roles.GetRolesForUser(UsersListBox.SelectedItem.Value);
RolesListBox.DataSource = rolesArray;
RolesListBox.DataBind();
}
public void RemoveUser_OnClick(object sender, EventArgs args)
{
// Verify that at least a user and at least one role are selected.
if (UsersListBox.SelectedItem == null)
{
Msg.Text = "Please select a user.";
return;
}
int[] role_indices = RolesListBox.GetSelectedIndices();
if (role_indices.Length == 0)
{
Msg.Text = "Please select one or more roles.";
return;
}
// Create list of roles to be remove the selected user from.
string[] rolesList = new string[role_indices.Length];
for (int i = 0; i < rolesList.Length; i++)
{
rolesList[i] = RolesListBox.Items[role_indices[i]].Value;
}
// Remove the user to the selected roles.
try
{
Roles.RemoveUserFromRoles(UsersListBox.SelectedItem.Value, rolesList);
Msg.Text = "User removed from Role(s).";
// Rebind roles to ListBox.
rolesArray = Roles.GetRolesForUser(UsersListBox.SelectedItem.Value);
RolesListBox.DataSource = rolesArray;
RolesListBox.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">Users:</td>
<td valign="top"><asp:ListBox id="UsersListBox" Rows="8" DataTextField="Username"
OnSelectedIndexChanged="UsersListBox_OnSelectedIndexChanged"
AutoPostBack="true" runat="server" /></td>
<td valign="top">Roles:</td>
<td valign="top"><asp:ListBox id="RolesListBox" SelectionMode="Multiple"
runat="server" Rows="8" /></td>
<td valign="top"><asp:Button Text="Remove User from Roles" id="RemoveUserButton"
runat="server" OnClick="RemoveUser_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.
users = Membership.GetAllUsers()
UsersListBox.DataSource = users
UsersListBox.DataBind()
End If
End Sub
Public Sub UsersListBox_OnSelectedIndexChanged(sender As Object, args As EventArgs)
' Bind users to ListBox.
rolesArray = Roles.GetRolesForUser(UsersListBox.SelectedItem.Value)
RolesListBox.DataSource = rolesArray
RolesListBox.DataBind()
End Sub
Public Sub RemoveUser_OnClick(sender As Object, args As EventArgs)
' Verify that at least a user and at least one role are selected.
If UsersListBox.SelectedItem Is Nothing Then
Msg.Text = "Please select a user."
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 roles to be remove the selected user from.
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
' Remove the user to the selected roles.
Try
Roles.RemoveUserFromRoles(UsersListBox.SelectedItem.Value, rolesList)
Msg.Text = "User removed from Role(s)."
' Rebind roles to ListBox.
rolesArray = Roles.GetRolesForUser(UsersListBox.SelectedItem.Value)
RolesListBox.DataSource = rolesArray
RolesListBox.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">Users:</td>
<td valign="top"><asp:ListBox id="UsersListBox" Rows="8" DataTextField="Username"
OnSelectedIndexChanged="UsersListBox_OnSelectedIndexChanged"
AutoPostBack="true" runat="server" /></td>
<td valign="top">Roles:</td>
<td valign="top"><asp:ListBox id="RolesListBox" SelectionMode="Multiple"
runat="server" Rows="8" /></td>
<td valign="top"><asp:Button Text="Remove User from Roles" id="RemoveUserButton"
runat="server" OnClick="RemoveUser_OnClick" /></td>
</tr>
</table>
</form>
</body>
</html>
Uwagi
Metoda RemoveUserFromRoles wywołuje domyślnego dostawcę roli, aby usunąć określonego użytkownika z określonych ról w źródle danych.
Jeśli aplikacja jest skonfigurowana do używania SqlRoleProvider klasy, aktualizacje bazy danych wykonywane podczas wywołania RemoveUserFromRoles metody są wykonywane w ramach transakcji. Jeśli wystąpi błąd, taki jak nazwa użytkownika, która nie znajduje się w określonej roli, transakcja zostanie wycofana i nie zostaną wykonane żadne aktualizacje.