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[] -> unit
Public Shared Sub AddUsersToRoles (usernames As String(), roleNames As String())
パラメーター
- usernames
- String[]
指定されたロールに追加するユーザー名の文字列配列。
- roleNames
- String[]
指定されたユーザー名の割り当て先となるロール名の文字列配列。
例外
roleNames
のロールの 1 つが空の文字列か、またはコンマ (,) を含んでいます。
- または -
usernames
のロールの 1 つが空の文字列か、またはコンマ (,) を含んでいます。
- または -
roleNames
に重複した要素が含まれています。
- または -
usernames
に重複した要素が含まれています。
ロール管理は有効になっていません。
例
次のコード例では、1 人以上のユーザーを 1 つ以上のロールに追加します。 ロール管理を有効にする 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 実行されるデータベース更新はトランザクション内で行われます。 指定したロールに既に存在するユーザー名などのエラーが発生した場合、トランザクションはロールバックされ、更新は実行されません。
注意
ユーザー名とロール名にコンマを含めることはできません。
適用対象
こちらもご覧ください
.NET