ProfileManager.FindProfilesByUserName 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
사용자 이름이 지정된 이름과 일치하는 프로필에 대한 프로필 정보를 검색합니다.
오버로드
FindProfilesByUserName(ProfileAuthenticationOption, String) |
사용자 이름이 지정된 이름과 일치하는 프로필에 대한 모든 프로필 정보를 검색합니다. |
FindProfilesByUserName(ProfileAuthenticationOption, String, Int32, Int32, Int32) |
사용자 이름이 지정된 이름과 일치하는 프로필에 대한 프로필 정보를 데이터 페이지에서 검색합니다. |
FindProfilesByUserName(ProfileAuthenticationOption, String)
사용자 이름이 지정된 이름과 일치하는 프로필에 대한 모든 프로필 정보를 검색합니다.
public:
static System::Web::Profile::ProfileInfoCollection ^ FindProfilesByUserName(System::Web::Profile::ProfileAuthenticationOption authenticationOption, System::String ^ usernameToMatch);
public static System.Web.Profile.ProfileInfoCollection FindProfilesByUserName (System.Web.Profile.ProfileAuthenticationOption authenticationOption, string usernameToMatch);
static member FindProfilesByUserName : System.Web.Profile.ProfileAuthenticationOption * string -> System.Web.Profile.ProfileInfoCollection
Public Shared Function FindProfilesByUserName (authenticationOption As ProfileAuthenticationOption, usernameToMatch As String) As ProfileInfoCollection
매개 변수
- authenticationOption
- ProfileAuthenticationOption
ProfileAuthenticationOption 열거형 값 중 하나로, 반환되는 프로필이 익명인지, 인증되었는지 또는 두 형식 모두인지를 지정합니다.
- usernameToMatch
- String
검색할 사용자 이름입니다.
반환
사용자 이름이 제공된 usernameToMatch
매개 변수와 일치하는 프로필에 대한 사용자 프로필 정보가 포함된 ProfileInfoCollection입니다.
예외
usernameToMatch
이(가) null
인 경우
usernameToMatch
가 빈 문자열("")인 경우
예제
다음 코드 예제에서는 사용자가 값과 ProfileAuthenticationOption 열거형 값을 제공하고 usernameToMatch
일치하는 프로필에 대한 프로필 정보를 검색할 수 있습니다. 이 예제에서는 사용자가 비활성 프로필을 독점적으로 반환할지 여부를 지정할 수 있습니다. 비활성 프로필에만 지정 된 경우는 FindInactiveProfilesByUserName 방법이 고, 그렇지 않으면 호출을 FindProfilesByUserName 메서드가 호출 됩니다.
중요
이 예제에서는 잠재적 보안 위협을 사용자 입력을 허용 하는 텍스트 상자가 포함 되어 있습니다. 기본적으로 ASP.NET 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다. 자세한 내용은 Script Exploits Overview를 참조하세요.
<%@ 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">
ProfileAuthenticationOption authOption;
int inactiveDays = 90;
public void Page_Load()
{
InactiveDaysLabel.Text = inactiveDays.ToString();
authOption = GetAuthenticationOption();
InactiveProfilesLabel.Text = ProfileManager.GetNumberOfInactiveProfiles(authOption,
DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0))).ToString();
DeletedMessage.Text = "";
}
private ProfileInfoCollection GetProfiles()
{
ProfileInfoCollection profiles;
if (ShowInactiveCheckBox.Checked)
{
profiles = ProfileManager.FindInactiveProfilesByUserName(authOption,
UserNameTextBox.Text,
DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0)));
}
else
{
profiles = ProfileManager.FindProfilesByUserName(authOption,
UserNameTextBox.Text);
}
return profiles;
}
private void ShowProfiles()
{
if (UserNameTextBox.Text.Trim() == "")
{
Msg.Text = "Please specify a user name.";
ProfileGrid.Visible = false;
return;
}
Msg.Text = "";
ProfileGrid.Visible = true;
ProfileGrid.DataSource = GetProfiles();
ProfileGrid.DataBind();
}
public void GoButton_OnClick(object sender, EventArgs args)
{
ShowProfiles();
}
public void ShowInactiveCheckBox_OnCheckedChanged(object sender, EventArgs args)
{
ShowProfiles();
}
public void DeleteButton_OnClick(object sender, EventArgs args)
{
DeletedMessage.Text = ProfileManager.DeleteProfiles(GetProfiles()).ToString() +
" profiles deleted.";
ShowProfiles();
}
public void AuthenticationOptionListBox_OnSelectedIndexChanged(object sender, EventArgs args)
{
authOption = GetAuthenticationOption();
ShowProfiles();
}
private ProfileAuthenticationOption GetAuthenticationOption()
{
if (AuthenticationOptionListBox.SelectedItem != null)
{
switch (AuthenticationOptionListBox.SelectedItem.Value)
{
case "Anonymous":
return ProfileAuthenticationOption.Anonymous;
break;
case "Authenticated":
return ProfileAuthenticationOption.Authenticated;
break;
default:
return ProfileAuthenticationOption.All;
break;
}
}
return ProfileAuthenticationOption.All;
}
</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:Label id="Msg" runat="Server" ForeColor="red" /><br />
<table border="0" cellpadding="3" cellspacing="3">
<tr>
<td valign="top">UserName to Search for:</td>
<td valign="top" colspan="2">
<asp:TextBox id="UserNameTextBox" runat="server" />
<asp:Button id="GoButton" Text=" Go " OnClick="GoButton_OnClick" runat="server" /><br />
</td>
</tr>
<tr>
<td valign="top">Authentication Option</td>
<td valign="top"><asp:ListBox id="AuthenticationOptionListBox" rows="3" runat="Server"
AutoPostBack="true"
OnSelectedIndexChanged="AuthenticationOptionListBox_OnSelectedIndexChanged">
<asp:ListItem value="All" selected="True">All</asp:ListItem>
<asp:ListItem value="Authenticated">Authenticated</asp:ListItem>
<asp:ListItem value="Anonymous">Anonymous</asp:ListItem>
</asp:ListBox>
</td>
<td valign="top"><asp:CheckBox id="ShowInactiveCheckBox" Checked="false"
AutoPostBack="true" runat="server"
OnCheckedChanged="ShowInactiveCheckBox_OnCheckedChanged" />
Show profiles inactive for
<asp:Label id="InactiveDaysLabel" runat="server" />
days only.<br />
There are <asp:Label id="InactiveProfilesLabel" runat="server" />
inactive profiles.
</td>
</tr>
<tr>
<td><asp:Button id="DeleteButton" runat="server"
Text="Delete Profiles" OnClick="DeleteButton_OnClick" />
<br /><i>(based on search results)</i>
</td>
<td valign="top"><asp:Label id="DeletedMessage" runat="server" /></td>
</tr>
</table>
<asp:DataGrid id="ProfileGrid" 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.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 authOption As ProfileAuthenticationOption
Dim inactiveDays As Integer = 90
Public Sub Page_Load()
InactiveDaysLabel.Text = inactiveDays.ToString()
authOption = GetAuthenticationOption()
InactiveProfilesLabel.Text = ProfileManager.GetNumberOfInactiveProfiles(authOption, _
DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0))).ToString()
DeletedMessage.Text = ""
End Sub
Private Function GetProfiles() As ProfileInfoCollection
Dim profiles As ProfileInfoCollection
If ShowInactiveCheckBox.Checked Then
profiles = ProfileManager.FindInactiveProfilesByUserName(authOption, _
UserNameTextBox.Text, _
DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0)))
Else
profiles = ProfileManager.FindProfilesByUserName(authOption, _
UserNameTextBox.Text)
End If
Return profiles
End Function
Private Sub ShowProfiles()
If UserNameTextBox.Text.Trim() = "" Then
Msg.Text = "Please specify a user name."
ProfileGrid.Visible = False
Return
End If
Msg.Text = ""
ProfileGrid.Visible = True
ProfileGrid.DataSource = GetProfiles()
ProfileGrid.DataBind()
End Sub
Public Sub GoButton_OnClick(sender As Object, args As EventArgs)
ShowProfiles()
End Sub
Public Sub ShowInactiveCheckBox_OnCheckedChanged(sender As Object, args As EventArgs)
ShowProfiles()
End Sub
Public Sub DeleteButton_OnClick(sender As Object, args As EventArgs)
DeletedMessage.Text = ProfileManager.DeleteProfiles(GetProfiles()).ToString() & _
" profiles deleted."
ShowProfiles()
End Sub
Public Sub AuthenticationOptionListBox_OnSelectedIndexChanged(sender As Object, args As EventArgs)
authOption = GetAuthenticationOption()
ShowProfiles()
End Sub
Private Function GetAuthenticationOption() As ProfileAuthenticationOption
If Not AuthenticationOptionListBox.SelectedItem Is Nothing Then
Select Case AuthenticationOptionListBox.SelectedItem.Value
Case "Anonymous"
Return ProfileAuthenticationOption.Anonymous
Case "Authenticated"
Return ProfileAuthenticationOption.Authenticated
Case Else
Return ProfileAuthenticationOption.All
End Select
End If
Return ProfileAuthenticationOption.All
End Function
</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:Label id="Msg" runat="Server" ForeColor="red" /><br />
<table border="0" cellpadding="3" cellspacing="3">
<tr>
<td valign="top">UserName to Search for:</td>
<td valign="top" colspan="2">
<asp:TextBox id="UserNameTextBox" runat="server" />
<asp:Button id="GoButton" Text=" Go " OnClick="GoButton_OnClick" runat="server" /><br />
</td>
</tr>
<tr>
<td valign="top">Authentication Option</td>
<td valign="top"><asp:ListBox id="AuthenticationOptionListBox" rows="3" runat="Server"
AutoPostBack="true"
OnSelectedIndexChanged="AuthenticationOptionListBox_OnSelectedIndexChanged">
<asp:ListItem value="All" selected="True">All</asp:ListItem>
<asp:ListItem value="Authenticated">Authenticated</asp:ListItem>
<asp:ListItem value="Anonymous">Anonymous</asp:ListItem>
</asp:ListBox>
</td>
<td valign="top"><asp:CheckBox id="ShowInactiveCheckBox" Checked="false"
AutoPostBack="true" runat="server"
OnCheckedChanged="ShowInactiveCheckBox_OnCheckedChanged" />
Show profiles inactive for
<asp:Label id="InactiveDaysLabel" runat="server" />
days only.<br />
There are <asp:Label id="InactiveProfilesLabel" runat="server" />
inactive profiles.
</td>
</tr>
<tr>
<td><asp:Button id="DeleteButton" runat="server"
Text="Delete Profiles" OnClick="DeleteButton_OnClick" />
<br /><i>(based on search results)</i>
</td>
<td valign="top"><asp:Label id="DeletedMessage" runat="server" /></td>
</tr>
</table>
<asp:DataGrid id="ProfileGrid" runat="server"
CellPadding="2" CellSpacing="1"
Gridlines="Both">
<HeaderStyle BackColor="darkblue" ForeColor="white" />
</asp:DataGrid>
</form>
</body>
</html>
설명
메서드는 FindProfilesByUserName 사용자 이름이 구성된 ApplicationName 속성 값에 대해 제공된 usernameToMatch
매개 변수 값과 일치하는 모든 프로필 정보의 목록을 반환합니다. 사용 된 authenticationOption
익명 프로필에 있는지 여부를 지정 하려면 매개 변수는 프로필 또는를 검색할 수 있는 모든 프로필에만 인증 합니다.
추가 pageIndex
및 pageSize
매개 변수를 사용하는 메서드에 대한 오버로드를 사용하여 데이터 페이지에서 사용자 프로필에 FindProfilesByUserName 대한 프로필 정보를 검색할 수 있습니다.
프로필 공급자는 매개 변수에서 usernameToMatch
와일드카드 문자를 지원할 수 있습니다. 예를 들어 클래스의 SqlProfileProvider 메서드는 FindProfilesByUserName 매개 변수에서 usernameToMatch
와일드카드 문자를 지원합니다.
메서드는 FindProfilesByUserName 기본 프로필 공급자의 메서드를 호출 FindProfilesByUserName 합니다. 기본 프로필 공급자는 프로필 구성 요소의 특성을 사용하여 defaultProvider
지정됩니다. 사용자 프로필에 기본 공급자가 아닌 프로필 공급자가 관리하는 속성이 포함된 경우 다른 프로필 공급자의 데이터 원본은 검색되지 않습니다. 기본 공급자가 아닌 프로필 공급자가 관리하는 프로필을 찾으려면 속성을 사용하여 Providers 프로필 공급자에 대한 참조를 가져오고 공급자의 메서드를 FindProfilesByUserName 직접 호출합니다.
추가 정보
적용 대상
FindProfilesByUserName(ProfileAuthenticationOption, String, Int32, Int32, Int32)
사용자 이름이 지정된 이름과 일치하는 프로필에 대한 프로필 정보를 데이터 페이지에서 검색합니다.
public:
static System::Web::Profile::ProfileInfoCollection ^ FindProfilesByUserName(System::Web::Profile::ProfileAuthenticationOption authenticationOption, System::String ^ usernameToMatch, int pageIndex, int pageSize, [Runtime::InteropServices::Out] int % totalRecords);
public static System.Web.Profile.ProfileInfoCollection FindProfilesByUserName (System.Web.Profile.ProfileAuthenticationOption authenticationOption, string usernameToMatch, int pageIndex, int pageSize, out int totalRecords);
static member FindProfilesByUserName : System.Web.Profile.ProfileAuthenticationOption * string * int * int * int -> System.Web.Profile.ProfileInfoCollection
Public Shared Function FindProfilesByUserName (authenticationOption As ProfileAuthenticationOption, usernameToMatch As String, pageIndex As Integer, pageSize As Integer, ByRef totalRecords As Integer) As ProfileInfoCollection
매개 변수
- authenticationOption
- ProfileAuthenticationOption
ProfileAuthenticationOption 열거형 값 중 하나로, 반환되는 프로필이 익명인지, 인증되었는지 또는 두 형식 모두인지를 지정합니다.
- usernameToMatch
- String
검색할 사용자 이름입니다.
- pageIndex
- Int32
반환할 결과 페이지의 인덱스입니다.
pageIndex
는 0부터 시작합니다.
- pageSize
- Int32
반환할 결과 페이지의 크기입니다.
- totalRecords
- Int32
이 메서드가 반환될 때 전체 프로필 수를 식별하는 정수가 포함됩니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.
반환
사용자 이름이 제공된 usernameToMatch
매개 변수와 일치하는 프로필에 대한 사용자 프로필 정보가 포함된 ProfileInfoCollection입니다.
예외
usernameToMatch
이(가) null
인 경우
usernameToMatch
가 빈 문자열("")인 경우
또는
pageIndex
가 0보다 작은 경우
또는
pageSize
가 1보다 작습니다.
또는
pageIndex
을 곱한 pageSize
값은 Int32.MaxValue보다 큽 있습니다.
예제
다음 코드 예제에서는 제공할 수 있습니다는 usernameToMatch
값 및 ProfileAuthenticationOption 프로필 일치 하는 프로필에 대 한 정보를 검색 하 고 있습니다. 이 예제에서는 사용자가 비활성 프로필을 독점적으로 반환할지 여부를 지정할 수 있습니다. 비활성 프로필에만 지정 된 경우는 FindInactiveProfilesByUserName 방법이 고, 그렇지 않으면 호출을 FindProfilesByUserName 메서드가 호출 됩니다.
중요
이 예제에서는 잠재적 보안 위협을 사용자 입력을 허용 하는 텍스트 상자가 포함 되어 있습니다. 기본적으로 ASP.NET 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다. 자세한 내용은 Script Exploits Overview를 참조하세요.
<%@ 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;
ProfileAuthenticationOption authOption;
int inactiveDays = 90;
public void Page_Load()
{
InactiveDaysLabel.Text = inactiveDays.ToString();
authOption = GetAuthenticationOption();
InactiveProfilesLabel.Text = ProfileManager.GetNumberOfInactiveProfiles(authOption,
DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0))).ToString();
DeletedMessage.Text = "";
}
private ProfileInfoCollection GetProfiles()
{
ProfileInfoCollection profiles;
if (ShowInactiveCheckBox.Checked)
{
profiles = ProfileManager.FindInactiveProfilesByUserName(authOption,
UserNameTextBox.Text,
DateTime.Now.Subtract(new TimeSpan(inactiveDays, 0, 0, 0)),
currentPage - 1, pageSize, out totalProfiles);
}
else
{
profiles = ProfileManager.FindProfilesByUserName(authOption,
UserNameTextBox.Text,
currentPage - 1, pageSize, out totalProfiles);
}
return profiles;
}
private void ShowProfiles()
{
if (UserNameTextBox.Text.Trim() == "")
{
Msg.Text = "Please specify a user name.";
NavigationPanel.Visible = false;
ProfileGrid.Visible = false;
return;
}
Msg.Text = "";
ProfileGrid.Visible = true;
ProfileGrid.DataSource = GetProfiles();
totalPages = ((totalProfiles - 1) / pageSize) + 1;
// Ensure that we do not navigate past the last page of users.
if (currentPage > totalPages)
{
currentPage = totalPages;
ShowProfiles();
return;
}
ProfileGrid.DataBind();
TotalProfilesLabel.Text = totalProfiles.ToString();
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++;
ShowProfiles();
}
public void PreviousButton_OnClick(object sender, EventArgs args)
{
currentPage = Convert.ToInt32(CurrentPageLabel.Text);
currentPage--;
ShowProfiles();
}
public void GoButton_OnClick(object sender, EventArgs args)
{
currentPage = 1;
ShowProfiles();
}
public void ShowInactiveCheckBox_OnCheckedChanged(object sender, EventArgs args)
{
ShowProfiles();
}
public void DeleteButton_OnClick(object sender, EventArgs args)
{
ProfileManager.DeleteProfiles(GetProfiles());
DeletedMessage.Text = totalProfiles.ToString() + " profiles deleted.";
ShowProfiles();
}
public void AuthenticationOptionListBox_OnSelectedIndexChanged(object sender, EventArgs args)
{
authOption = GetAuthenticationOption();
ShowProfiles();
}
private ProfileAuthenticationOption GetAuthenticationOption()
{
if (AuthenticationOptionListBox.SelectedItem != null)
{
switch (AuthenticationOptionListBox.SelectedItem.Value)
{
case "Anonymous":
return ProfileAuthenticationOption.Anonymous;
break;
case "Authenticated":
return ProfileAuthenticationOption.Authenticated;
break;
default:
return ProfileAuthenticationOption.All;
break;
}
}
return ProfileAuthenticationOption.All;
}
</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:Label id="Msg" runat="Server" ForeColor="red" /><br />
<table border="0" cellpadding="3" cellspacing="3">
<tr>
<td valign="top">UserName to Search for:</td>
<td valign="top" colspan="2">
<asp:TextBox id="UserNameTextBox" runat="server" />
<asp:Button id="GoButton" Text=" Go " OnClick="GoButton_OnClick" runat="server" /><br />
</td>
</tr>
<tr>
<td valign="top">Authentication Option</td>
<td valign="top"><asp:ListBox id="AuthenticationOptionListBox" rows="3" runat="Server"
AutoPostBack="true"
OnSelectedIndexChanged="AuthenticationOptionListBox_OnSelectedIndexChanged">
<asp:ListItem value="All" selected="True">All</asp:ListItem>
<asp:ListItem value="Authenticated">Authenticated</asp:ListItem>
<asp:ListItem value="Anonymous">Anonymous</asp:ListItem>
</asp:ListBox>
</td>
<td valign="top"><asp:CheckBox id="ShowInactiveCheckBox" Checked="false"
AutoPostBack="true" runat="server"
OnCheckedChanged="ShowInactiveCheckBox_OnCheckedChanged" />
Show profiles inactive for
<asp:Label id="InactiveDaysLabel" runat="server" />
days only.<br />
There are <asp:Label id="InactiveProfilesLabel" runat="server" />
inactive profiles.
</td>
</tr>
<tr>
<td><asp:Button id="DeleteButton" runat="server"
Text="Delete Profiles" OnClick="DeleteButton_OnClick" />
<br /><i>(based on search results)</i>
</td>
<td valign="top"><asp:Label id="DeletedMessage" runat="server" /></td>
</tr>
</table>
<asp:Panel id="NavigationPanel" Visible="false" runat="server">
<asp:Label id="TotalProfilesLabel" runat="server" /> profile(s) found.
<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="ProfileGrid" 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.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
Dim authOption As ProfileAuthenticationOption
Dim inactiveDays As Integer = 90
Public Sub Page_Load()
InactiveDaysLabel.Text = inactiveDays.ToString()
authOption = GetAuthenticationOption()
InactiveProfilesLabel.Text = ProfileManager.GetNumberOfInactiveProfiles(authOption, _
DateTime.Now.Subtract(New TimeSpan(inactiveDays, 0, 0, 0))).ToString()
DeletedMessage.Text = ""
End Sub
Private Function GetProfiles() As ProfileInfoCollection
Dim profiles As ProfileInfoCollection
If ShowInactiveCheckBox.Checked Then
profiles = ProfileManager.FindInactiveProfilesByUserName(authOption, _
UserNameTextBox.Text, _
DateTime.Now.Subtract(New TimeSpan(inactiveDays, 0, 0, 0)), _
currentPage - 1, pageSize, totalProfiles)
Else
profiles = ProfileManager.FindProfilesByUserName(authOption, _
UserNameTextBox.Text, _
currentPage - 1, pageSize, totalProfiles)
End If
Return profiles
End Function
Private Sub ShowProfiles()
If UserNameTextBox.Text.Trim() = "" Then
Msg.Text = "Please specify a user name."
NavigationPanel.Visible = False
ProfileGrid.Visible = False
Return
End If
Msg.Text = ""
ProfileGrid.Visible = True
ProfileGrid.DataSource = GetProfiles()
totalPages = ((totalProfiles - 1) \ pageSize) + 1
' Ensure that we do not navigate past the last page of users.
If currentPage > totalPages Then
currentPage = totalPages
ShowProfiles()
Return
End If
ProfileGrid.DataBind()
TotalProfilesLabel.Text = totalProfiles.ToString()
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
ShowProfiles()
End Sub
Public Sub PreviousButton_OnClick(sender As Object, args As EventArgs)
currentPage = Convert.ToInt32(CurrentPageLabel.Text)
currentPage -= 1
ShowProfiles()
End Sub
Public Sub GoButton_OnClick(sender As Object, args As EventArgs)
currentPage = 1
ShowProfiles()
End Sub
Public Sub ShowInactiveCheckBox_OnCheckedChanged(sender As Object, args As EventArgs)
ShowProfiles()
End Sub
Public Sub DeleteButton_OnClick(sender As Object, args As EventArgs)
ProfileManager.DeleteProfiles(GetProfiles())
DeletedMessage.Text = totalProfiles.ToString() & " profiles deleted."
ShowProfiles()
End Sub
Public Sub AuthenticationOptionListBox_OnSelectedIndexChanged(sender As Object, args As EventArgs)
authOption = GetAuthenticationOption()
ShowProfiles()
End Sub
Private Function GetAuthenticationOption() As ProfileAuthenticationOption
If Not AuthenticationOptionListBox.SelectedItem Is Nothing Then
Select Case AuthenticationOptionListBox.SelectedItem.Value
Case "Anonymous"
Return ProfileAuthenticationOption.Anonymous
Case "Authenticated"
Return ProfileAuthenticationOption.Authenticated
Case Else
Return ProfileAuthenticationOption.All
End Select
End If
Return ProfileAuthenticationOption.All
End Function
</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:Label id="Msg" runat="Server" ForeColor="red" /><br />
<table border="0" cellpadding="3" cellspacing="3">
<tr>
<td valign="top">UserName to Search for</td>
<td valign="top" colspan="2">
<asp:TextBox id="UserNameTextBox" runat="server" />
<asp:Button id="GoButton" Text=" Go " OnClick="GoButton_OnClick" runat="server" /><br />
</td>
</tr>
<tr>
<td valign="top">Authentication Option</td>
<td valign="top"><asp:ListBox id="AuthenticationOptionListBox" rows="3" runat="Server"
AutoPostBack="True"
OnSelectedIndexChanged="AuthenticationOptionListBox_OnSelectedIndexChanged">
<asp:ListItem value="All" selected="True">All</asp:ListItem>
<asp:ListItem value="Authenticated">Authenticated</asp:ListItem>
<asp:ListItem value="Anonymous">Anonymous</asp:ListItem>
</asp:ListBox>
</td>
<td valign="top"><asp:CheckBox id="ShowInactiveCheckBox" Checked="False"
AutoPostBack="True" runat="server"
OnCheckedChanged="ShowInactiveCheckBox_OnCheckedChanged" />
Show profiles inactive for
<asp:Label id="InactiveDaysLabel" runat="server" />
days only.<br />
There are <asp:Label id="InactiveProfilesLabel" runat="server" />
inactive profiles.
</td>
</tr>
<tr>
<td><asp:Button id="DeleteButton" runat="server"
Text="Delete Profiles" OnClick="DeleteButton_OnClick" />
<br /><i>(based on search results)</i>
</td>
<td valign="top"><asp:Label id="DeletedMessage" runat="server" /></td>
</tr>
</table>
<asp:Panel id="NavigationPanel" Visible="False" runat="server">
<asp:Label id="TotalProfilesLabel" runat="server" /> profile(s) found.
<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="ProfileGrid" runat="server"
CellPadding="2" CellSpacing="1"
Gridlines="Both">
<HeaderStyle BackColor="darkblue" ForeColor="white" />
</asp:DataGrid>
</form>
</body>
</html>
설명
메서드는 FindInactiveProfilesByUserName 프로필 사용자 이름이 구성된 ApplicationName의 제공된 usernameToMatch
매개 변수 값과 일치하는 프로필 정보 목록을 반환합니다. 사용 된 authenticationOption
익명 프로필에 있는지 여부를 지정 하려면 매개 변수는 프로필 또는를 검색할 수 있는 모든 프로필에만 인증 합니다.
프로필 공급자는 매개 변수에서 usernameToMatch
와일드카드 문자를 지원할 수 있습니다. 예를 들어 클래스의 SqlProfileProvider 메서드는 FindProfilesByUserName 매개 변수에서 usernameToMatch
와일드카드 문자를 지원합니다.
반환한 결과 FindProfilesByUserName 에 의해 제한 됩니다 합니다 pageIndex
및 pageSize
매개 변수입니다. 합니다 pageSize
의 최대 수를 식별 하는 매개 변수 ProfileInfo 에서 반환 하는 개체는 ProfileInfoCollection합니다. 매개 변수는 pageIndex
반환할 결과의 페이지를 식별합니다. 0은 첫 번째 페이지를 식별합니다. 합니다 totalRecords
매개 변수는는 out
비활성 사용자 프로필에서 지정한 애플리케이션에 대 한 총 수로 설정 된 매개 변수를 applicationName
구성 파일에서 특성을 기반으로 제공 된 authenticationOption
합니다. 예를 들어 13 명의 사용자가 구성 된 경우 applicationName
, 및 pageIndex
값이 1을 pageSize
5는 ProfileInfoCollection 반환 된 6 번째부터 10 번째까지의 프로필이 포함 합니다.
totalRecords
매개 변수를 13으로 설정 됩니다.
메서드는 FindInactiveProfilesByUserName 기본 프로필 공급자의 메서드를 호출 FindInactiveProfilesByUserName 합니다. 기본 프로필 공급자는 프로필 구성 요소의 특성을 사용하여 defaultProvider
지정됩니다. 사용자 프로필에 기본 공급자가 아닌 프로필 공급자가 관리하는 속성이 포함된 경우 다른 프로필 공급자의 데이터 원본은 검색되지 않습니다. 기본 공급자가 아닌 프로필 공급자가 관리하는 프로필을 찾으려면 속성을 사용하여 Providers 프로필 공급자에 대한 참조를 가져오고 공급자의 메서드를 FindInactiveProfilesByUserName 직접 호출합니다.
추가 정보
적용 대상
.NET