Udostępnij za pośrednictwem


Membership.FindUsersByName Metoda

Definicja

Pobiera kolekcję użytkowników członkostwa, w których nazwa użytkownika zawiera określoną nazwę użytkownika, która ma być zgodna.

Przeciążenia

FindUsersByName(String)

Pobiera kolekcję użytkowników członkostwa, w których nazwa użytkownika zawiera określoną nazwę użytkownika, która ma być zgodna.

FindUsersByName(String, Int32, Int32, Int32)

Pobiera kolekcję użytkowników członkostwa na stronie danych, na której nazwa użytkownika zawiera określoną nazwę użytkownika do dopasowania.

FindUsersByName(String)

Pobiera kolekcję użytkowników członkostwa, w których nazwa użytkownika zawiera określoną nazwę użytkownika, która ma być zgodna.

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

Parametry

usernameToMatch
String

Nazwa użytkownika do wyszukania.

Zwraca

Element MembershipUserCollection zawierający wszystkich użytkowników, którzy są zgodni z parametrem usernameToMatch .

Spacje wiodące i końcowe są przycinane z wartości parametru usernameToMatch .

Wyjątki

usernameToMatch jest pustym ciągiem.

usernameToMatch to null.

Przykłady

Poniższy przykład kodu używa FindUsersByName metody do pobierania informacji o użytkowniku członkostwa z bazy danych członkostwa na podstawie danych wejściowych użytkownika i wyświetla wyniki na stronach danych.

Ważne

Ten przykład zawiera pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web weryfikują, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz Omówienie luk w zabezpieczeniach skryptów.

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

Uwagi

FindUsersByName Zwraca listę użytkowników członkostwa, w których nazwa użytkownika jest zgodna z podanym usernameToMatch dla skonfigurowanego applicationNameelementu .

Funkcja SqlMembershipProvider wykonuje wyszukiwanie przy użyciu klauzuli LIKE względem parametru usernameToMatch . Wszystkie symbole wieloznaczne obsługiwane przez program SQL Server w klauzulach LIKE mogą być używane w wartości parametru usernameToMatch .

Spacje wiodące i końcowe są przycinane ze wszystkich wartości parametrów.

Zobacz też

Dotyczy

FindUsersByName(String, Int32, Int32, Int32)

Pobiera kolekcję użytkowników członkostwa na stronie danych, na której nazwa użytkownika zawiera określoną nazwę użytkownika do dopasowania.

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

Parametry

usernameToMatch
String

Nazwa użytkownika do wyszukania.

pageIndex
Int32

Indeks strony wyników do zwrócenia. Funkcja pageIndex rozpoczyna liczenie od zera.

pageSize
Int32

Rozmiar strony wyników do zwrócenia.

totalRecords
Int32

Całkowita liczba dopasowanych użytkowników.

Zwraca

Element MembershipUserCollection , który zawiera stronę obiektów rozpoczynających pageSizeMembershipUser się na stronie określonej przez pageIndex.

Spacje wiodące i końcowe są przycinane z wartości parametru usernameToMatch .

Wyjątki

usernameToMatch jest pustym ciągiem.

-lub-

Parametr pageIndex ma wartość niższą niż zero.

-lub-

pageSize wartość jest mniejsza niż 1.

usernameToMatch to null.

Przykłady

Poniższy przykład kodu używa FindUsersByName metody do pobierania informacji o użytkowniku członkostwa z bazy danych członkostwa na podstawie danych wejściowych użytkownika i wyświetla wyniki na stronach danych.

Ważne

Ten przykład zawiera pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web weryfikują, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz Omówienie luk w zabezpieczeniach skryptów.

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

Uwagi

FindUsersByName Zwraca listę użytkowników członkostwa, w których nazwa użytkownika jest zgodna z podanym usernameToMatch dla skonfigurowanego applicationNameelementu .

Funkcja SqlMembershipProvider wykonuje wyszukiwanie przy użyciu klauzuli LIKE względem parametru usernameToMatch . Wszystkie symbole wieloznaczne obsługiwane przez program SQL Server w klauzulach LIKE mogą być używane w wartości parametru usernameToMatch .

Wyniki zwracane przez FindUsersByName element są ograniczone przez pageIndex parametry i pageSize . Parametr pageSize identyfikuje maksymalną liczbę MembershipUser obiektów, które mają być zwracane w obiekcie MembershipUserCollection. Parametr pageIndex określa, która strona wyników ma być zwracana, gdzie 0 identyfikuje pierwszą stronę. Parametr totalRecords jest parametrem ustawionym out na całkowitą liczbę użytkowników członkostwa pasujących do usernameToMatch wartości. Jeśli na przykład 13 użytkowników zostało znalezionych, gdzie usernameToMatch dopasowano część lub całą nazwę użytkownika, a pageIndex wartość wynosiła 1 z wartością pageSize 5, MembershipUserCollection zwrócona wartość będzie zawierać szóstą do dziesięciu zwróconych użytkowników. totalRecords wartość zostanie ustawiona na 13.

Zobacz też

Dotyczy