다음을 통해 공유


SqlRoleProvider.FindUsersInRole(String, String) 메서드

정의

지정된 사용자 이름과 일치하는 부분이 사용자 이름에 포함되어 있는 사용자 이름의 배열을 역할에서 가져옵니다.

public:
 override cli::array <System::String ^> ^ FindUsersInRole(System::String ^ roleName, System::String ^ usernameToMatch);
public override string[] FindUsersInRole (string roleName, string usernameToMatch);
override this.FindUsersInRole : string * string -> string[]
Public Overrides Function FindUsersInRole (roleName As String, usernameToMatch As String) As String()

매개 변수

roleName
String

검색할 역할입니다.

usernameToMatch
String

검색할 사용자 이름입니다.

반환

String[]

사용자 이름이 usernameToMatch와 일치하고 사용자가 지정된 역할의 멤버인 모든 사용자의 이름을 포함하는 문자열 배열입니다.

예외

roleNamenull(Visual Basic의 경우 Nothing)인 경우

또는

usernameToMatch이(가) null인 경우

roleName이 빈 문자열이거나 쉼표를 포함하는 경우

또는

usernameToMatch이 빈 문자열인 경우

또는

roleName이 256자보다 긴 경우

또는

usernameToMatch이 256자보다 긴 경우

데이터베이스에서 roleName을 찾을 수 없는 경우

또는

데이터베이스와 통신하는 동안 알 수 없는 오류가 발생한 경우

예제

다음 코드 예제에서는 FindUsersInRole 사용자 입력을 기반으로 하는 역할 멤버 자격을 표시 하는 방법입니다. 역할 관리를 사용 하도록 설정 하는 Web.config 파일의 예제를 참조 하세요. Roles합니다.

중요

이 예제에서는 잠재적 보안 위협을 사용자 입력을 허용 하는 텍스트 상자가 포함 되어 있습니다. 기본적으로 ASP.NET 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다. 자세한 내용은 Script Exploits Overview를 참조하세요.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

string[] users;

public void Page_Load()
{
  if (!IsPostBack)
  {
    RolesListBox.DataSource = Roles.GetAllRoles();
    RolesListBox.DataBind();
  }
}

public void GoButton_OnClick(object sender, EventArgs args)
{
  Msg.Text = "";
  users = null;

  if (RolesListBox.SelectedItem == null)
  {
    Msg.Text = "Please select a role.";
    return;
  }

  users = Roles.FindUsersInRole(RolesListBox.SelectedItem.Text, UsernameTextBox.Text);

  if (users.Length < 1)
  {
    Msg.Text = "No matching users found in selected role.";
  }

  UserGrid.DataSource = users;
  UserGrid.DataBind();
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Find Users</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>User List</h3>

  <asp:Label id="Msg" runat="Server" ForeColor="red" />

  <table border="0" cellpadding="3" cellspacing="3">
    <tr>
      <td valign="top">Role:</td>
      <td valign="top"><asp:ListBox id="RolesListBox" runat="Server" /></td>
    </tr>
    <tr>
      <td valign="top">Username to Search for:</td>
      <td valign="top"><asp:TextBox id="UsernameTextBox" runat="server" /></td>
    </tr>
  </table>
  <asp:Button id="GoButton" Text=" Go " OnClick="GoButton_OnClick" runat="server" /><br />

  <asp:DataGrid id="UserGrid" runat="server"
                CellPadding="2" CellSpacing="1"
                Gridlines="Both">
    <HeaderStyle BackColor="darkblue" ForeColor="white" />
  </asp:DataGrid>

</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Dim users() As String

Public Sub Page_Load()
  If Not IsPostBack Then
    RolesListBox.DataSource = Roles.GetAllRoles()
    RolesListBox.DataBind()
  End If
End SUb

Public Sub GoButton_OnClick(sender As Object, args As EventArgs)
  Msg.Text = ""
  users = Nothing

  If RolesListBox.SelectedItem Is Nothing Then
    Msg.Text = "Please select a role."
    Return
  End If

  users = Roles.FindUsersInRole(RolesListBox.SelectedItem.Text, UsernameTextBox.Text)

  If users.Length < 1 Then
    Msg.Text = "No matching users found in selected role."
  End If

  UserGrid.DataSource = users
  UserGrid.DataBind()
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Find Users</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>User List</h3>

  <asp:Label id="Msg" runat="Server" ForeColor="red" />

  <table border="0" cellpadding="3" cellspacing="3">
    <tr>
      <td valign="top">Role:</td>
      <td valign="top"><asp:ListBox id="RolesListBox" runat="Server" /></td>
    </tr>
    <tr>
      <td valign="top">Username to Search for:</td>
      <td valign="top"><asp:TextBox id="UsernameTextBox" runat="server" /></td>
    </tr>
  </table>
  <asp:Button id="GoButton" Text=" Go " OnClick="GoButton_OnClick" runat="server" /><br />

  <asp:DataGrid id="UserGrid" runat="server"
                CellPadding="2" CellSpacing="1"
                Gridlines="Both">
    <HeaderStyle BackColor="darkblue" ForeColor="white" />
  </asp:DataGrid>

</form>

</body>
</html>

설명

합니다 FindUsersInRole 메서드를 호출 합니다 Roles 클래스 및 사용자 이름을 제공 된 일치 하는 항목에 포함 된 역할에 사용자의 목록을 반환 합니다 usernameToMatch 구성 된 applicationName합니다. 합니다 SqlRoleProvider 일치 하는 사용자 이름 검색 합니다 usernameToMatch LIKE 키워드와 지원 SQL Server 와일드 카드 문자를 사용 하 여 매개 변수 값입니다. 예를 들어 경우는 usernameToMatch "user1"로 설정 된 후 존재 하는 경우 "user1"의 사용자 이름 사용 하 여 사용자에 대 한 멤버 자격 정보 반환 됩니다. 경우는 usernameToMatch "user %"로 설정 된 후 "user1", "user2", "user_admin" 및 등의 사용자 이름으로 사용자에 게 멤버 자격 정보 반환 됩니다.

적용 대상

추가 정보