SqlProfileProvider.GetAllProfiles Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte data profilu uživatele pro profily ve zdroji dat.
public:
override System::Web::Profile::ProfileInfoCollection ^ GetAllProfiles(System::Web::Profile::ProfileAuthenticationOption authenticationOption, int pageIndex, int pageSize, [Runtime::InteropServices::Out] int % totalRecords);
public override System.Web.Profile.ProfileInfoCollection GetAllProfiles (System.Web.Profile.ProfileAuthenticationOption authenticationOption, int pageIndex, int pageSize, out int totalRecords);
override this.GetAllProfiles : System.Web.Profile.ProfileAuthenticationOption * int * int * int -> System.Web.Profile.ProfileInfoCollection
Public Overrides Function GetAllProfiles (authenticationOption As ProfileAuthenticationOption, pageIndex As Integer, pageSize As Integer, ByRef totalRecords As Integer) As ProfileInfoCollection
Parametry
- authenticationOption
- ProfileAuthenticationOption
Jedna z ProfileAuthenticationOption hodnot určující, jestli se vrátí anonymní, ověřený nebo oba typy profilů.
- pageIndex
- Int32
Index stránky výsledků, které se mají vrátit.
pageIndex
je založen na nule.
- pageSize
- Int32
Velikost stránky výsledků, které se mají vrátit.
- totalRecords
- Int32
Když tato metoda vrátí, obsahuje celé číslo, které identifikuje celkový počet profilů. Tento parametr se předává neinicializovaný.
Návraty
Obsahující ProfileInfoCollection informace o profilu uživatele pro všechny profily ve zdroji dat.
Výjimky
Hodnota pageIndex
je menší než nula.
-nebo-
pageSize
je menší než jedna.
-nebo-
pageIndex
vynásobeno pageSize
je větší než Int32.MaxValue.
Příklady
Následující příklad kódu zobrazí informace o profilu pro všechny profily nakonfigurované applicationName
na stránkách dat.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Profile" %>
<!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 totalProfiles;
int totalPages;
int currentPage = 1;
public void Page_Load()
{
if (!IsPostBack)
{
GetProfiles();
}
}
private void GetProfiles()
{
SqlProfileProvider p = (SqlProfileProvider)Profile.Providers["SqlProvider"];
ProfileGrid.DataSource = p.GetAllProfiles(ProfileAuthenticationOption.All,
currentPage - 1, pageSize, out totalProfiles);
totalPages = ((totalProfiles - 1) / pageSize) + 1;
// Ensure that we do not navigate past the last page of Profiles.
if (currentPage > totalPages)
{
currentPage = totalPages;
GetProfiles();
return;
}
ProfileGrid.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 (totalProfiles <= 0)
NavigationPanel.Visible = false;
else
NavigationPanel.Visible = true;
}
public void NextButton_OnClick(object sender, EventArgs args)
{
currentPage = Convert.ToInt32(CurrentPageLabel.Text);
currentPage++;
GetProfiles();
}
public void PreviousButton_OnClick(object sender, EventArgs args)
{
currentPage = Convert.ToInt32(CurrentPageLabel.Text);
currentPage--;
GetProfiles();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Find Profiles</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Profile List</h3>
<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:GridView id="ProfileGrid" runat="server"
CellPadding="2" CellSpacing="1" Gridlines="Both">
<HeaderStyle BackColor="darkblue" ForeColor="white" />
</asp:GridView>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Profile" %>
<!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 totalProfiles As Integer
Dim totalPages As Integer
Dim currentPage As Integer = 1
Public Sub Page_Load()
If Not IsPostBack Then
GetProfiles()
End If
End Sub
Private Sub GetProfiles()
Dim p As SqlProfileProvider = CType(Profile.Providers("SqlProvider"), SqlProfileProvider)
ProfileGrid.DataSource = p.GetAllProfiles(ProfileAuthenticationOption.All, _
currentPage - 1, pageSize, totalProfiles)
totalPages = ((totalProfiles - 1) \ pageSize) + 1
' Ensure that we do not navigate past the last page of Profiles.
If currentPage > totalPages Then
currentPage = totalPages
GetProfiles()
Return
End If
ProfileGrid.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 totalProfiles <= 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
GetProfiles()
End SUb
Public Sub PreviousButton_OnClick(sender As Object, args As EventArgs)
currentPage = Convert.ToInt32(CurrentPageLabel.Text)
currentPage -= 1
GetProfiles()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Find Profiles</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Profile List</h3>
<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:GridView id="ProfileGrid" runat="server"
CellPadding="2" CellSpacing="1" Gridlines="Both">
<HeaderStyle BackColor="darkblue" ForeColor="white" />
</asp:GridView>
</form>
</body>
</html>
Poznámky
Metoda GetAllProfiles se používá k načtení informací o profilu pro profily ze zdroje dat pro aplikaci určenou atributem applicationName
v konfiguračním souboru. Pomocí parametru authenticationOption
určete, jestli chcete prohledávat pouze anonymní profily, pouze ověřené profily nebo všechny profily.
Výsledky vrácené nástrojem GetAllInactiveProfiles jsou omezeny pageIndex
parametry a pageSize
. Parametr pageSize
identifikuje maximální počet ProfileInfo objektů, které se mají vrátit v objektu ProfileInfoCollection. Parametr pageIndex
určuje, kterou stránku výsledků se má vrátit; hodnota 0 identifikuje první stránku. Parametr totalRecords
je out
parametr, který je nastavený na celkový počet neaktivních profilů uživatelů pro nakonfigurovaný applicationName
parametr na základě authenticationOption
parametrů a userInactiveSinceDate
. Pokud je například pro nakonfigurovaný applicationName
objekt 13 uživatelů a pageIndex
hodnota je 1 s pageSize
hodnotou 5, ProfileInfoCollection bude vrácená hodnota obsahovat šestý až desátý profil. Parametr totalRecords
bude nastaven na hodnotu 13.