次の方法で共有


Membership.FindUsersByName メソッド

定義

ユーザー名が指定内容と一致するメンバーシップ ユーザーのコレクションを取得します。

オーバーロード

FindUsersByName(String)

ユーザー名が指定内容と一致するメンバーシップ ユーザーのコレクションを取得します。

FindUsersByName(String, Int32, Int32, Int32)

ユーザー名が指定内容と一致するメンバーシップ ユーザーのコレクションをページで取得します。

FindUsersByName(String)

ユーザー名が指定内容と一致するメンバーシップ ユーザーのコレクションを取得します。

public:
 static System::Web::Security::MembershipUserCollection ^ FindUsersByName(System::String ^ usernameToMatch);
public static System.Web.Security.MembershipUserCollection FindUsersByName (string usernameToMatch);
static member FindUsersByName : string -> System.Web.Security.MembershipUserCollection
Public Shared Function FindUsersByName (usernameToMatch As String) As MembershipUserCollection

パラメーター

usernameToMatch
String

検索するユーザー名。

戻り値

usernameToMatch パラメーターと一致するすべてのユーザーが含まれる MembershipUserCollection

usernameToMatch パラメーター値の先頭と末尾の空白はトリムされます。

例外

usernameToMatch が空の文字列です。

usernameToMatchnullです。

次のコード例では、 メソッドを FindUsersByName 使用して、ユーザー入力に基づいてメンバーシップ データベースからメンバーシップ ユーザー情報を取得し、結果をデータのページに表示します。

重要

この例には、潜在的なセキュリティ上の脅威であるユーザー入力を受け入れるテキスト ボックスが含まれています。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「スクリプトによる攻略の概要」を参照してください。

<%@ 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">

public void GoButton_OnClick(object sender, EventArgs args)
{
  UserGrid.DataSource = Membership.FindUsersByName(UsernameTextBox.Text);
  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>

  Username to Search for: 
    <asp:TextBox id="UsernameTextBox" runat="server" />
    <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">

Public Sub GoButton_OnClick(sender As Object, args As EventArgs)
  UserGrid.DataSource = Membership.FindUsersByName(UsernameTextBox.Text)
  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>

  Username to Search for: 
    <asp:TextBox id="UsernameTextBox" runat="server" />
    <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>

注釈

FindUsersByNameは、ユーザー名が、構成された applicationNameに対して指定された usernameToMatch と一致するメンバーシップ ユーザーの一覧を返します。

SqlMembershipProvider 、 パラメーターに対して LIKE 句を使用して検索を usernameToMatch 実行します。 SQL Server で LIKE 句でサポートされているワイルドカードは、パラメーター値で usernameToMatch 使用できます。

先頭と末尾のスペースは、すべてのパラメーター値からトリミングされます。

こちらもご覧ください

適用対象

FindUsersByName(String, Int32, Int32, Int32)

ユーザー名が指定内容と一致するメンバーシップ ユーザーのコレクションをページで取得します。

public:
 static System::Web::Security::MembershipUserCollection ^ FindUsersByName(System::String ^ usernameToMatch, int pageIndex, int pageSize, [Runtime::InteropServices::Out] int % totalRecords);
public static System.Web.Security.MembershipUserCollection FindUsersByName (string usernameToMatch, int pageIndex, int pageSize, out int totalRecords);
static member FindUsersByName : string * int * int * int -> System.Web.Security.MembershipUserCollection
Public Shared Function FindUsersByName (usernameToMatch As String, pageIndex As Integer, pageSize As Integer, ByRef totalRecords As Integer) As MembershipUserCollection

パラメーター

usernameToMatch
String

検索するユーザー名。

pageIndex
Int32

返される結果ページのインデックス。 pageIndex は 0 から始まります。

pageSize
Int32

取得する結果のページのサイズ。

totalRecords
Int32

一致したユーザーの合計数。

戻り値

pageSize で指定されたページから始まる pageIndexMembershipUserCollection オブジェクトのページを格納している MembershipUser

usernameToMatch パラメーター値の先頭と末尾の空白はトリムされます。

例外

usernameToMatch が空の文字列です。

または

pageIndex が 0 未満です。

- または -

pageSize が 1 未満です。

usernameToMatchnullです。

次のコード例では、 メソッドを FindUsersByName 使用して、ユーザー入力に基づいてメンバーシップ データベースからメンバーシップ ユーザー情報を取得し、結果をデータのページに表示します。

重要

この例には、潜在的なセキュリティ上の脅威であるユーザー入力を受け入れるテキスト ボックスが含まれています。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「スクリプトによる攻略の概要」を参照してください。

<%@ 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">

int pageSize = 5;
int totalUsers;
int totalPages;
int currentPage = 1;

private void GetUsers()
{
  UserGrid.DataSource = Membership.FindUsersByName(UsernameTextBox.Text, 
                          currentPage - 1, pageSize, out totalUsers);
  totalPages = ((totalUsers - 1) / pageSize) + 1;

  // Ensure that we do not navigate past the last page of users.

  if (currentPage > totalPages)
  {
    currentPage = totalPages;
    GetUsers();
    return;
  }

  UserGrid.DataBind();
  CurrentPageLabel.Text = currentPage.ToString();
  TotalPagesLabel.Text = totalPages.ToString();

  if (currentPage == totalPages)
    NextButton.Visible = false;
  else
    NextButton.Visible = true;

  if (currentPage == 1)
    PreviousButton.Visible = false;
  else
    PreviousButton.Visible = true;

  if (totalUsers <= 0)
    NavigationPanel.Visible = false;
  else
    NavigationPanel.Visible = true;
}

public void NextButton_OnClick(object sender, EventArgs args)
{
  currentPage = Convert.ToInt32(CurrentPageLabel.Text);
  currentPage++;
  GetUsers();
}

public void PreviousButton_OnClick(object sender, EventArgs args)
{
  currentPage = Convert.ToInt32(CurrentPageLabel.Text);
  currentPage--;
  GetUsers();
}

public void GoButton_OnClick(object sender, EventArgs args)
{
  currentPage = 1;
  GetUsers();
}

</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>

  Username to Search for: 
    <asp:TextBox id="UsernameTextBox" runat="server" />
    <asp:Button id="GoButton" Text=" Go " OnClick="GoButton_OnClick" runat="server" /><br />

  <asp:Panel id="NavigationPanel" Visible="false" runat="server">
    <table border="0" cellpadding="3" cellspacing="3">
      <tr>
        <td style="width:100">Page <asp:Label id="CurrentPageLabel" runat="server" />
            of <asp:Label id="TotalPagesLabel" runat="server" /></td>
        <td style="width:60"><asp:LinkButton id="PreviousButton" Text="< Prev"
                            OnClick="PreviousButton_OnClick" runat="server" /></td>
        <td style="width:60"><asp:LinkButton id="NextButton" Text="Next >"
                            OnClick="NextButton_OnClick" runat="server" /></td>
      </tr>
    </table>
  </asp:Panel>

  <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 pageSize As Integer = 5
Dim totalUsers As Integer
Dim totalPages As Integer
Dim currentPage As Integer = 1

Private Sub GetUsers()
  UserGrid.DataSource = Membership.FindUsersByName(UsernameTextBox.Text, _
                          currentPage - 1, pageSize, totalUsers)

  totalPages = ((totalUsers - 1) \ pageSize) + 1

  ' Ensure that we do not navigate past the last page of users.

  If currentPage > totalPages Then
    currentPage = totalPages
    GetUsers()
    Return
  End If

  UserGrid.DataBind()
  CurrentPageLabel.Text = currentPage.ToString()
  TotalPagesLabel.Text = totalPages.ToString()

  If currentPage = totalPages Then
    NextButton.Visible = False
  Else
    NextButton.Visible = True
  End If

  If currentPage = 1 Then
    PreviousButton.Visible = False
  Else
    PreviousButton.Visible = True
  End If

  If totalUsers <= 0 Then
    NavigationPanel.Visible = False
  Else
    NavigationPanel.Visible = True
  End If
End Sub

Public Sub NextButton_OnClick(sender As Object, args As EventArgs)
  currentPage = Convert.ToInt32(CurrentPageLabel.Text)
  currentPage += 1
  GetUsers()
End Sub

Public Sub PreviousButton_OnClick(sender As Object, args As EventArgs)
  currentPage = Convert.ToInt32(CurrentPageLabel.Text)
  currentPage -= 1
  GetUsers()
End Sub

Public Sub GoButton_OnClick(sender As Object, args As EventArgs)
  currentPage = 1
  GetUsers()
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>

  Username to Search for: 
    <asp:TextBox id="UsernameTextBox" runat="server" />
    <asp:Button id="GoButton" Text=" Go " OnClick="GoButton_OnClick" runat="server" /><br />

  <asp:Panel id="NavigationPanel" Visible="False" runat="server">
    <table border="0" cellpadding="3" cellspacing="3">
      <tr>
        <td style="width:100">Page <asp:Label id="CurrentPageLabel" runat="server" />
            of <asp:Label id="TotalPagesLabel" runat="server" /></td>
        <td style="width:60"><asp:LinkButton id="PreviousButton" Text="< Prev"
                            OnClick="PreviousButton_OnClick" runat="server" /></td>
        <td style="width:60"><asp:LinkButton id="NextButton" Text="Next >"
                            OnClick="NextButton_OnClick" runat="server" /></td>
      </tr>
    </table>
  </asp:Panel>

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

</form>

</body>
</html>

注釈

FindUsersByNameは、ユーザー名が、構成された applicationNameに対して指定された usernameToMatch と一致するメンバーシップ ユーザーの一覧を返します。

SqlMembershipProvider 、 パラメーターに対して LIKE 句を使用して検索を usernameToMatch 実行します。 SQL Server で LIKE 句でサポートされているワイルドカードは、パラメーター値で usernameToMatch 使用できます。

によってFindUsersByName返される結果は、 パラメーターと pageSize パラメーターによってpageIndex制限されます。 パラメーターは pageSize 、 で返されるオブジェクトの MembershipUser 最大数を識別します MembershipUserCollection。 パラメーターは pageIndex 、返す結果のページを識別します。0 は最初のページを識別します。 パラメーターは totalRecords 、値に out 一致したメンバーシップ ユーザーの合計数に設定される usernameToMatch パラメーターです。 たとえば、 の一部またはユーザー名全体に一致するユーザーが usernameToMatch 13 人見つかり、 pageIndex 値が 1 で a pageSize が 5 の場合、 MembershipUserCollection 返される 6 番目から 10 番目のユーザーが返されます。 totalRecords は 13 に設定されます。

こちらもご覧ください

適用対象