Membership.FindUsersByName 方法

定義

取得成員資格使用者的集合,其中的使用者名稱包含必須符合的特定使用者名稱。

多載

FindUsersByName(String)

取得成員資格使用者的集合,其中的使用者名稱包含必須符合的特定使用者名稱。

FindUsersByName(String, Int32, Int32, Int32)

以分頁資料的方式取得成員資格使用者的集合,其中的使用者名稱包含必須符合的指定使用者名稱。

FindUsersByName(String)

取得成員資格使用者的集合,其中的使用者名稱包含必須符合的特定使用者名稱。

public static System.Web.Security.MembershipUserCollection FindUsersByName (string usernameToMatch);

參數

usernameToMatch
String

要搜尋的使用者名稱。

傳回

MembershipUserCollection,其中包含與 usernameToMatch 參數相符的所有使用者。

會修剪 usernameToMatch 參數值中的前置空格和後端空格。

例外狀況

usernameToMatch 為空字串。

usernameToMatchnull

範例

下列程式代碼範例會 FindUsersByName 使用 方法來根據使用者輸入從成員資格資料庫擷取成員資格用戶資訊,並在數據頁面中顯示結果。

重要

此範例包含一個文本框,可接受用戶輸入,這是潛在的安全性威脅。 根據預設,ASP.NET Web 網頁會驗證使用者輸入未包含指令碼或 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">

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>

備註

FindUsersByName會傳回成員資格使用者的清單,其中用戶名稱符合所applicationName設定 所提供的 usernameToMatch

SqlMembershipProvider 針對 參數使用 LIKE 子句 usernameToMatch 來執行其搜尋。 LIKE 子句中 SQL Server 支援的任何通配符都可以用於 usernameToMatch 參數值。

前置和尾端空格會從所有參數值修剪。

另請參閱

適用於

.NET Framework 4.8.1 及其他版本
產品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

FindUsersByName(String, Int32, Int32, Int32)

以分頁資料的方式取得成員資格使用者的集合,其中的使用者名稱包含必須符合的指定使用者名稱。

public static System.Web.Security.MembershipUserCollection FindUsersByName (string usernameToMatch, int pageIndex, int pageSize, out int totalRecords);

參數

usernameToMatch
String

要搜尋的使用者名稱。

pageIndex
Int32

要傳回的結果頁面索引。 pageIndex 以零為起始。

pageSize
Int32

要傳回的結果網頁大小。

totalRecords
Int32

相符的使用者總數。

傳回

MembershipUserCollection,其中包含 pageSizeMembershipUser 物件的頁面,從 pageIndex 指定的頁面開始。

會修剪 usernameToMatch 參數值中的前置空格和後端空格。

例外狀況

usernameToMatch 為空字串。

-或-

pageIndex 小於零。

-或-

pageSize 小於 1。

usernameToMatchnull

範例

下列程式代碼範例會 FindUsersByName 使用 方法來根據使用者輸入從成員資格資料庫擷取成員資格用戶資訊,並在數據頁面中顯示結果。

重要

此範例包含一個文本框,可接受用戶輸入,這是潛在的安全性威脅。 根據預設,ASP.NET Web 網頁會驗證使用者輸入未包含指令碼或 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">

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>

備註

FindUsersByName會傳回成員資格使用者的清單,其中用戶名稱符合所applicationName設定 所提供的 usernameToMatch

SqlMembershipProvider 針對 參數使用 LIKE 子句 usernameToMatch 來執行其搜尋。 LIKE 子句中 SQL Server 支援的任何通配符都可以用於 usernameToMatch 參數值。

FindUsersByName 回的結果受限於 pageIndexpageSize 參數。 參數pageSize會識別 在中MembershipUserCollection傳回的物件MembershipUser數目上限。 參數 pageIndex 會識別要傳回的結果頁面,其中 0 會識別第一頁。 參數 totalRecords 是參數 out ,設定為符合 usernameToMatch 值的成員資格用戶總數。 例如,如果找到 usernameToMatch 符合部分或整個用戶名稱的13位使用者,且 pageIndex 值為1 pageSize 且值為5,則 MembershipUserCollection 傳回的使用者會包含傳回的第六位到第十位使用者。 totalRecords 會設定為 13。

另請參閱

適用於

.NET Framework 4.8.1 及其他版本
產品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1