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 -> unit
Public 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 메서드는 트랜잭션 내에서 이루어집니다. 지정된 역할에 없는 사용자 이름과 같은 오류가 발생하면 트랜잭션이 롤백되고 업데이트가 수행되지 않습니다.
적용 대상
추가 정보
.NET