AuthorizationStoreRoleProvider.AddUsersToRoles(String[], String[]) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přidá zadaná uživatelská jména ke každé ze zadaných rolí.
public:
override void AddUsersToRoles(cli::array <System::String ^> ^ usernames, cli::array <System::String ^> ^ roleNames);
public override void AddUsersToRoles (string[] usernames, string[] roleNames);
override this.AddUsersToRoles : string[] * string[] -> unit
Public Overrides Sub AddUsersToRoles (usernames As String(), roleNames As String())
Parametry
- usernames
- String[]
Pole řetězců uživatelských jmen, která se mají přidat do zadaných rolí.
- roleNames
- String[]
Pole řetězců s názvy rolí, do které se mají přidat zadaná uživatelská jména.
Výjimky
Jedno ze zadaných uživatelských jmen je null
.
-nebo-
Jeden ze zadaných názvů rolí je null
.
-nebo-
usernames
je null
.
-nebo-
roleNames
je null
.
Jedno ze zadaných uživatelských jmen je prázdný řetězec nebo obsahuje čárku (,).
-nebo-
Jeden ze zadaných názvů rolí je prázdný řetězec nebo obsahuje čárku (,).
-nebo-
usernames
obsahuje duplicitní prvek.
-nebo-
roleNames
obsahuje duplicitní prvek.
Nakonfigurovaná applicationName
hodnota nebyla nalezena.
-nebo-
Nakonfigurovaná scopeName
hodnota nebyla nalezena.
-nebo-
Modul runtime authorization-manager není na serveru nainstalovaný.
Atribut connectionStringName
odkazuje na připojovací řetězec na soubor, který neexistuje.
Instance AuthorizationStoreRoleProvider je nakonfigurovaná s úložištěm zásad založeným na souborech a na aktuální úrovni důvěryhodnosti není povolený přístup pro čtení k souboru.
Příklady
Následující příklad kódu přidá jednoho nebo více uživatelů do role nebo odebere uživatele z role. Příklad souboru Web.config, který umožňuje správu rolí, najdete v tématu AuthorizationStoreRoleProvider.
<%@ 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;
string[] usersInRole;
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();
}
if (RolesListBox.SelectedItem != null)
{
// Show users in role. Bind user list to GridView.
usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value);
UsersInRoleGrid.DataSource = usersInRole;
UsersInRoleGrid.DataBind();
}
}
public void AddUsers_OnClick(object sender, EventArgs args)
{
// Verify that a role is selected.
if (RolesListBox.SelectedItem == null)
{
Msg.Text = "Please select a role.";
return;
}
// Verify that at least one user is selected.
if (UsersListBox.SelectedItem == null)
{
Msg.Text = "Please select one or more users.";
return;
}
// Create list of users to be added to the selected role.
string[] newusers = new string[UsersListBox.GetSelectedIndices().Length];
for (int i = 0; i < newusers.Length; i++)
{
newusers[i] = UsersListBox.Items[UsersListBox.GetSelectedIndices()[i]].Value;
}
// Add the users to the selected role.
try
{
Roles.AddUsersToRole(newusers, RolesListBox.SelectedItem.Value);
// Re-bind users in role to GridView.
usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value);
UsersInRoleGrid.DataSource = usersInRole;
UsersInRoleGrid.DataBind();
}
catch (Exception e)
{
Msg.Text = e.Message;
}
}
public void UsersInRoleGrid_RemoveFromRole(object sender, GridViewCommandEventArgs args)
{
// Get the selected user name to remove.
int index = Convert.ToInt32(args.CommandArgument);
string username = ((DataBoundLiteralControl)UsersInRoleGrid.Rows[index].Cells[0].Controls[0]).Text;
// Remove the user from the selected role.
try
{
Roles.RemoveUserFromRole(username, RolesListBox.SelectedItem.Value);
}
catch (Exception e)
{
Msg.Text = "An exception of type " + e.GetType().ToString() +
" was encountered removing the user from the role.";
}
// Re-bind users in role to GridView.
usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value);
UsersInRoleGrid.DataSource = usersInRole;
UsersInRoleGrid.DataBind();
}
</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" Rows="8" AutoPostBack="true" /></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" ID="AddUsersButton" runat="server" OnClick="AddUsers_OnClick" /></td>
</tr>
<tr>
<td valign="top">
Users In Role:</td>
<td valign="top">
<asp:GridView runat="server" CellPadding="4" ID="UsersInRoleGrid" AutoGenerateColumns="false"
GridLines="None" CellSpacing="0" OnRowCommand="UsersInRoleGrid_RemoveFromRole">
<HeaderStyle BackColor="navy" ForeColor="white" />
<Columns>
<asp:TemplateField HeaderText="User Name" >
<ItemTemplate>
<%# Container.DataItem.ToString() %>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField Text="Remove From Role" ButtonType="Link" />
</Columns>
</asp:GridView>
</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
Dim usersInRole() As String
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
If Not RolesListBox.SelectedItem Is Nothing Then
' Show users in role. Bind user list to GridView.
usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)
UsersInRoleGrid.DataSource = usersInRole
UsersInRoleGrid.DataBind()
End If
End Sub
Public Sub AddUsers_OnClick(ByVal sender As Object, ByVal args As EventArgs)
' Verify that a role is selected.
If RolesListBox.SelectedItem Is Nothing Then
Msg.Text = "Please select a role."
Return
End If
' Verify that at least one user is selected.
If UsersListBox.SelectedItem Is Nothing Then
Msg.Text = "Please select one or more users."
Return
End If
' Create list of users to be added to the selected role.
Dim newusers(UsersListBox.GetSelectedIndices().Length - 1) As String
For i As Integer = 0 To newusers.Length - 1
newusers(i) = UsersListBox.Items(UsersListBox.GetSelectedIndices(i)).Value
Next
' Add the users to the selected role.
Try
Roles.AddUsersToRole(newusers, RolesListBox.SelectedItem.Value)
' Re-bind users in role to GridView.
usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)
UsersInRoleGrid.DataSource = usersInRole
UsersInRoleGrid.DataBind()
Catch e As Exception
Msg.Text = e.Message
End Try
End Sub
Public Sub UsersInRoleGrid_RemoveFromRole(ByVal sender As Object, ByVal args As GridViewCommandEventArgs)
' Get the selected user name to remove.
Dim index As Integer = Convert.ToInt32(args.CommandArgument)
Dim username As String = (CType(UsersInRoleGrid.Rows(index).Cells(0).Controls(0), DataBoundLiteralControl)).Text
' Remove the user from the selected role.
Try
Roles.RemoveUserFromRole(username, RolesListBox.SelectedItem.Value)
Catch e As Exception
Msg.Text = "An exception of type " & e.GetType().ToString() & _
" was encountered removing the user from the role."
End Try
' Re-bind users in role to GridView.
usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)
UsersInRoleGrid.DataSource = usersInRole
UsersInRoleGrid.DataBind()
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" Rows="8" AutoPostBack="true" /></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" ID="AddUsersButton" runat="server" OnClick="AddUsers_OnClick" /></td>
</tr>
<tr>
<td valign="top">
Users In Role:</td>
<td valign="top">
<asp:GridView runat="server" CellPadding="4" ID="UsersInRoleGrid" AutoGenerateColumns="false"
GridLines="None" CellSpacing="0" OnRowCommand="UsersInRoleGrid_RemoveFromRole">
<HeaderStyle BackColor="navy" ForeColor="white" />
<Columns>
<asp:TemplateField HeaderText="User Name" >
<ItemTemplate>
<%# Container.DataItem.ToString() %>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField Text="Remove From Role" ButtonType="Link" />
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</form>
</body>
</html>
Poznámky
Metoda AddUsersToRoles je volána Roles třídou pro přidružení jednoho nebo více uživatelů k jedné nebo více rolím v úložišti dat správce autorizace zadaném v konfiguračním souboru aplikace ASP.NET (Web.config). Tato metoda je volána metodami Roles.AddUserToRoleRoles , Roles.AddUserToRoles, Roles.AddUsersToRolea Roles.AddUsersToRoles třídy .