Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo ProfileManager.FindInactiveProfilesByUserName (ProfileAuthenticationOption, String, DateTime)

 

Data di pubblicazione: ottobre 2016

Recupera le informazioni di profilo per tutti i profili in cui la data dell'ultima attività si è verificato il o prima della data specificata e ora e il nome utente per il profilo corrisponde al nome specificato.

Spazio dei nomi:   System.Web.Profile
Assembly:  System.Web (in System.Web.dll)

public static ProfileInfoCollection FindInactiveProfilesByUserName(
	ProfileAuthenticationOption authenticationOption,
	string usernameToMatch,
	DateTime userInactiveSinceDate
)

Parametri

authenticationOption
Type: System.Web.Profile.ProfileAuthenticationOption

Uno del ProfileAuthenticationOption vengono restituiti entrambi i tipi di profili o valori di enumerazione che specifica se anonimo, autenticato.

usernameToMatch
Type: System.String

Il nome utente da cercare.

userInactiveSinceDate
Type: System.DateTime

Oggetto DateTime che identifica i profili utente considerati inattivi. Se il LastActivityDate di un utente profilo o prima della data e ora, il profilo viene considerato inattivo.

Valore restituito

Type: System.Web.Profile.ProfileInfoCollection

Oggetto ProfileInfoCollection contenente informazioni sul profilo utente per i profili inattivi in cui il nome utente corrisponde al nome utente usernameToMatch parametro.

Exception Condition
ArgumentNullException

usernameToMatch è null.

ArgumentException

usernameToMatch è una stringa vuota ("").

Il FindInactiveProfilesByUserName metodo viene utilizzato per recuperare le informazioni per tutti i profili utente per l'applicazione specificata per il applicationName attributo nel file di configurazione. Questo metodo recupera soltanto i profili per i quali il nome utente corrisponde al nome utente usernameToMatch valore del parametro. Utilizzare il authenticationOption parametro per specificare se si desidera solo profili anonimi, solo profili autenticati o tutti i profili in cui cercare. Tra i profili ricercati, qualsiasi profilo con un LastActivityDate che si verifica in corrispondenza o prima specificato userInactiveSinceDate viene restituito il valore di parametro.

È possibile recuperare queste informazioni nelle pagine di dati tramite l'overload per il FindInactiveProfilesByUserName(ProfileAuthenticationOption, String, DateTime, Int32, Int32, Int32) metodo che accetta ulteriore pageIndex e pageSize i parametri.

System_CAPS_noteNota

Il provider di profili può supportare caratteri jolly nel usernameToMatch parametro. Ad esempio, il FindInactiveProfilesByUserName metodo la SqlProfileProvider classe supporta caratteri jolly nel usernameToMatch parametro.

Il FindInactiveProfilesByUserName chiamate al metodo di ProfileProvider.FindInactiveProfilesByUserName metodo del provider di profili predefinito. Provider di profili predefinito viene specificato utilizzando il defaultProvider attributo dell'elemento di configurazione. Se il profilo utente contiene proprietà che sono gestite da un provider di profili diverso da quello predefinito, l'origine dati per tale provider non viene eseguita la ricerca. Per trovare i profili inattivi gestiti da un provider di profili diverso da quello predefinito, ottenere un riferimento al provider di profili mediante la Providers proprietà e chiamare il FindInactiveProfilesByUserName metodo del provider direttamente.

Esempio di codice seguente consente di fornire un usernameToMatch valore e un ProfileAuthenticationOption valore di enumerazione e recupera le informazioni sui profili corrispondenti del profilo. L'esempio consente all'utente di specificare se restituire solo profili inattivi. Se l'utente specifica solo profili inattivi, il FindInactiveProfilesByUserName metodo viene chiamato; in caso contrario, il FindProfilesByUserName viene chiamato il metodo.

System_CAPS_security Sicurezza Nota

In questo esempio contiene una casella di testo che accetta l'input dell'utente, ovvero una potenziale minaccia alla sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per altre informazioni, vedere 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>

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: