Aracılığıyla paylaş


SqlMembershipProvider.FindUsersByName(String, Int32, Int32, Int32) Yöntem

Tanım

Kullanıcı adının eşleşecek belirtilen kullanıcı adını içerdiği üyelik kullanıcıları koleksiyonunu alır.

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

Parametreler

usernameToMatch
String

Aranacak kullanıcı adı.

pageIndex
Int32

Döndürülecek sonuç sayfasının dizini. pageIndex sıfır tabanlıdır.

pageSize
Int32

Döndürülecek sonuç sayfasının boyutu.

totalRecords
Int32

Bu yöntem döndürdüğünde, eşleşen kullanıcıların toplam sayısını içerir.

Döndürülenler

MembershipUserCollection tarafından pageIndexbelirtilen sayfadan pageSizeMembershipUser başlayarak bir nesne sayfası içeren bir.

Özel durumlar

usernameToMatch boş bir dize ("") veya 256 karakterden uzun.

-veya-

pageIndex, sıfırdan küçüktür.

-veya-

pageSize 1'den küçüktür.

-veya-

pageIndexartı pageSize eksi bir ile pageSize çarpıldığında Int32.MaxValue değerini aşıyor.

usernameToMatch, null değeridir.

Örnekler

Aşağıdaki kod örneği, üyelik kullanıcı bilgilerini almak için yöntemini kullanır FindUsersByName ve sonuçları veri sayfalarında görüntüler.

Not

Bu örnekte, belirtilen öğesini Web.config dosyasında olarak defaultProvider çağırmak SqlMembershipProvider için System.Web.Security.SqlMembershipProvider kullanılır. türü SqlMembershipProviderolarak varsayılan sağlayıcıya erişmeniz gerekiyorsa sınıfının özelliğini Membership yayınlayabilirsinizProvider. Belirli bir sağlayıcı türü olarak yapılandırılan diğer sağlayıcılara erişmek için, bu sağlayıcılara sınıfının özelliğiyle ProvidersMembership yapılandırılmış adlarıyla erişebilir ve bunları belirli bir sağlayıcı türü olarak yayınlayabilirsiniz.

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

Açıklamalar

FindUsersByName, kullanıcı adının yapılandırılan ApplicationNameiçin sağlanan usernameToMatch ile eşleşme içerdiği üyelik kullanıcılarının listesini döndürür.

, SqlMembershipProvider LIKE yan tümcesini kullanarak parametre değeriyle usernameToMatch eşleşen bir kullanıcı adı arar. SQL Server joker karakterleri parametre değerine eklenebilir. Örneğin, parametre "user1" olarak ayarlanırsa usernameToMatch , kullanıcı adı "user1" olan kullanıcının kullanıcı bilgileri (varsa) döndürülür. usernameToMatch Parametre "user%" olarak ayarlanırsa, kullanıcı adı "user1", "user2", "user_admin" vb. olan kullanıcılar için kullanıcı bilgileri döndürülür.

tarafından FindUsersByName döndürülen sonuçlar ve pageSize parametreleriyle pageIndex kısıtlanır. parametresi içinde pageSize döndürülecek MembershipUserCollectionen fazla nesne sayısını MembershipUser tanımlar. pageIndex parametresi döndürülecek sonuç sayfasını, sıfırın ise ilk sayfayı tanımladığı sayfayı tanımlar. totalRecords parametresi, yapılandırılan applicationNameiçin üyelik kullanıcılarının toplam sayısına ayarlanmış bir out parametredir. Örneğin, yapılandırılan applicationNameiçin 13 kullanıcı varsa ve pageIndex değer 1 pageSize ile 5 arasındaysa, MembershipUserCollection döndürülen kullanıcı döndürülen altıncı ile onuncu kullanıcı arasında yer alır. totalRecords parametresi 13 olarak ayarlanır.

Baştaki ve sondaki boşluklar parametre değerinden usernameToMatch kırpılır.

Şunlara uygulanır

Ayrıca bkz.