SqlMembershipProvider.GetAllUsers(Int32, Int32, Int32) 方法
定义
获取 SQL Server 成员资格数据库中所有用户的集合。Gets a collection of all the users in the SQL Server membership database.
public:
override System::Web::Security::MembershipUserCollection ^ GetAllUsers(int pageIndex, int pageSize, [Runtime::InteropServices::Out] int % totalRecords);
public override System.Web.Security.MembershipUserCollection GetAllUsers (int pageIndex, int pageSize, out int totalRecords);
override this.GetAllUsers : int * int * int -> System.Web.Security.MembershipUserCollection
Public Overrides Function GetAllUsers (pageIndex As Integer, pageSize As Integer, ByRef totalRecords As Integer) As MembershipUserCollection
参数
- pageIndex
- Int32
要返回的结果页的索引。The index of the page of results to return. pageIndex
从零开始。pageIndex
is zero-based.
- pageSize
- Int32
要返回的结果页的大小。The size of the page of results to return.
- totalRecords
- Int32
用户的总数。The total number of users.
返回
MembershipUserCollection 对象的 MembershipUser,表示数据库中配置的 ApplicationName 的所有用户。A MembershipUserCollection of MembershipUser objects representing all the users in the database for the configured ApplicationName.
异常
pageIndex
小于零。pageIndex
is less than zero.
- 或 --or-
pageSize
小于一。pageSize
is less than one.
或-or-
pageIndex
乘以 pageSize
,然后加上 pageSize
再减去 1 后得到的值大于 MaxValue。pageIndex
multiplied by pageSize
plus pageSize
minus one exceeds MaxValue.
示例
下面的代码示例返回数据页中的用户列表,其中包含当前联机用户数的计数。The following code example returns a list of users in pages of data with a count of the number of users currently online.
备注
此示例使用Membership类defaultProvider
在 web.config 文件中SqlMembershipProvider调用指定的。This example uses the Membership class to call the SqlMembershipProvider specified as the defaultProvider
in the Web.config file. 如果需要以类型SqlMembershipProvider访问默认提供程序,则可以Provider强制转换Membership类的属性。If you need to access the default provider as the type SqlMembershipProvider, you can cast the Provider property of the Membership class. 若要以特定的提供程序类型访问其他已配置的提供程序,可以使用Providers Membership类的属性访问这些提供程序,并将其转换为特定的提供程序类型。To access other configured providers as a specific provider type, you can access them by their configured name with the Providers property of the Membership class and cast them as the specific provider type.
<%@ 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;
public void Page_Load()
{
if (!IsPostBack)
{
GetUsers();
}
}
private void GetUsers()
{
UsersOnlineLabel.Text = Membership.GetNumberOfUsersOnline().ToString();
UserGrid.DataSource = Membership.GetAllUsers(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();
}
</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>
Number of Users Online: <asp:Label id="UsersOnlineLabel" 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
Public Sub Page_Load()
If Not IsPostBack Then
GetUsers()
End If
End Sub
Private Sub GetUsers()
UsersOnlineLabel.Text = Membership.GetNumberOfUsersOnline().ToString()
UserGrid.DataSource = Membership.GetAllUsers(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
</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>
Number of Users Online: <asp:Label id="UsersOnlineLabel" 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>
注解
此方法由Membership类调用,以从 ASP.NET 应用程序的配置文件(web.config)中指定的 SQL Server 数据库中检索用户信息。This method is called by the Membership class to retrieve user information from the SQL Server database specified in the ASP.NET application's configuration file (Web.config).
返回GetAllUsers的结果是pageIndex
由和pageSize
参数约束的。The results returned by GetAllUsers are constrained by the pageIndex
and pageSize
parameters. 参数标识要在中返回的MembershipUser MembershipUserCollection对象的最大数目。 pageSize
The pageSize
parameter identifies the maximum number of MembershipUser objects to return in the MembershipUserCollection. pageIndex
参数标识要返回的结果页,其中零标识第一页。The pageIndex
parameter identifies which page of results to return, where zero identifies the first page. 参数是一个out
参数,该参数设置为已配置applicationName
的成员资格用户的总数。 totalRecords
The totalRecords
parameter is an out
parameter that is set to the total number of membership users for the configured applicationName
. 例如applicationName
,如果配置了13个用户, pageIndex
并且pageSize
值为1且为5,则MembershipUserCollection返回的将包含返回的第6个到第10个用户。For example, if there are 13 users for the configured applicationName
, and the pageIndex
value was 1 with a pageSize
of 5, the MembershipUserCollection returned would contain the sixth through the tenth users returned. totalRecords
参数将设置为13。The totalRecords
parameter would be set to 13.