ProfileBase ProfileBase ProfileBase ProfileBase Class

Definición

Proporciona acceso sin tipo a la información y los valores de propiedad de perfil.Provides untyped access to profile property values and information.

public ref class ProfileBase : System::Configuration::SettingsBase
public class ProfileBase : System.Configuration.SettingsBase
type ProfileBase = class
    inherit SettingsBase
Public Class ProfileBase
Inherits SettingsBase
Herencia
Derivado

Ejemplos

En el ejemplo de código siguiente se muestra un archivo Web. config que especifica un perfil de ZipCode usuario que contiene string una propiedad RecentSearchList de tipo y StringCollectionuna propiedad de tipo.The following code example shows a Web.config file that specifies a user profile that contains a ZipCode property of type string and a RecentSearchList property of type StringCollection. La propiedad Profile generada del actual HttpContext tendrá descriptores de acceso fuertemente tipados para cada una de las propiedades especificadas.The generated Profile property of the current HttpContext will have strongly typed accessors for each of the specified properties.

<configuration>  
  <system.web>  
    <anonymousIdentification enabled="true" />  

    <profile enabled="true" defaultProvider="SqlProvider" >  
      <properties>  
        <add name="ZipCode" allowAnonymous="true" />  
        <add name="RecentSearchList"  
          type="System.Collections.Specialized.StringCollection"  
          serializeAs="Xml"  
          allowAnonymous="true" />  
      </properties>  
    </profile>  
  </system.web>  
</configuration>  

En el ejemplo siguiente se muestra una página ASP.net que lee y ZipCode establece la propiedad especificada para el perfil de usuario.The following example shows an ASP.NET page that reads and sets the ZipCode property specified for the user profile. Antes de intentar ejecutar este código, establezca el proveedor en el valor predeterminado AspNetSqlProvider en la configuración de ASP.net para el sitio Web.Before attempting to run this code, set the provider to the default AspNetSqlProvider in the ASP.NET configuration settings for the Web site.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Page_PreRender()
{
  if (Profile.ZipCode == null)
  {
    PersonalizePanel.Visible = false;
    GetZipCodePanel.Visible = true;
  }
  else
  {
    ZipCodeLabel.Text = Profile.ZipCode;

    // Get personalized information for zip code here.

    PersonalizePanel.Visible = true;
    GetZipCodePanel.Visible = false;
  }
}

public void ChangeZipCode_OnClick(object sender, EventArgs args)
{
  ZipCodeTextBox.Text = Profile.ZipCode;
  Profile.ZipCode = null;

  PersonalizePanel.Visible = false;
  GetZipCodePanel.Visible = true;
}

public void EnterZipCode_OnClick(object sender, EventArgs args)
{
  Profile.ZipCode = ZipCodeTextBox.Text;
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<form id="form1" runat="server">
  <table border="1" cellpadding="2" cellspacing="2">
    <tr>
      <td>
        <asp:Panel id="PersonalizePanel" runat="Server" Visible="False">
          Information for Zip Code: <asp:Label id="ZipCodeLabel" Runat="Server" /><br />
          <!-- Information for Zip Code here. -->
          <br />
          <asp:LinkButton id="ChangeZipCodeButton" Runat="Server" Text="Change Your Zip Code"
                          OnClick="ChangeZipCode_OnClick" />
        </asp:Panel>
        <asp:Panel id="GetZipCodePanel" runat="Server" Visible="False">
          You can personalize this page by entering your Zip Code: 
          <asp:TextBox id="ZipCodeTextBox" Columns="5" MaxLength="5" runat="Server" />
          <asp:LinkButton id="EnterZipCodeButton" Runat="Server" Text="Go"
                          OnClick="EnterZipCode_OnClick" />
        </asp:Panel>
      </td>
    </tr>
  </table>
</form>

</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub Page_PreRender()

  If Profile.ZipCode = Nothing Then
    PersonalizePanel.Visible = False
    GetZipCodePanel.Visible = True
  Else
    ZipCodeLabel.Text = Profile.ZipCode

    ' Get personalized information for zip code here.

    PersonalizePanel.Visible = True
    GetZipCodePanel.Visible = False
  End If

End Sub

Public Sub ChangeZipCode_OnClick(sender As Object, args As EventArgs)
  ZipCodeTextBox.Text = Profile.ZipCode
  Profile.ZipCode = Nothing

  PersonalizePanel.Visible = False
  GetZipCodePanel.Visible = True
End Sub

Public Sub EnterZipCode_OnClick(sender As Object, args As EventArgs)
  Profile.ZipCode = ZipCodeTextBox.Text
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<form id="form1" runat="server">
  <table border="1" cellpadding="2" cellspacing="2">
    <tr>
      <td>
        <asp:Panel id="PersonalizePanel" runat="Server" Visible="False">
          Information for Zip Code: <asp:Label id="ZipCodeLabel" Runat="Server" /><br />
          <!-- Information for Zip Code here. -->
          <br />
          <asp:LinkButton id="ChangeZipCodeButton" Runat="Server" Text="Change Your Zip Code"
                          OnClick="ChangeZipCode_OnClick" />
        </asp:Panel>
        <asp:Panel id="GetZipCodePanel" runat="Server" Visible="False">
          You can personalize this page by entering your Zip Code: 
          <asp:TextBox id="ZipCodeTextBox" Columns="5" MaxLength="5" runat="Server" />
          <asp:LinkButton id="EnterZipCodeButton" Runat="Server" Text="Go"
                          OnClick="EnterZipCode_OnClick" />
        </asp:Panel>
      </td>
    </tr>
  </table>
</form>

</body>
</html>

En el ejemplo de código siguiente se define una clase que hereda ProfileBase de la clase para crear un perfil personalizado.The following code example defines a class that inherits from the ProfileBase class to create a custom profile. El tipo del perfil personalizado se especifica en el inherits atributo del elemento de configuración de perfil en el archivo Web. config de una aplicación.The type of the custom profile is specified in the inherits attribute of the profile configuration element in the Web.config file for an application.

Importante

Este ejemplo contiene un cuadro de texto que acepta datos proporcionados por el usuario, que es una posible amenaza de seguridad.This example contains a text box that accepts user input, which is a potential security threat. De forma predeterminada, ASP.NET Web Pages valida que los datos proporcionados por el usuario no incluyen elementos HTML ni de script.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Para más información, consulte Información general sobre los ataques mediante scripts.For more information, see Script Exploits Overview.

using System;
using System.Web.Profile;

namespace Samples.AspNet.Profile
{
  public class EmployeeProfile : ProfileBase
  {
    [SettingsAllowAnonymous(false)]
    [ProfileProvider("EmployeeInfoProvider")]
    public string Department
    {
      get { return base["EmployeeDepartment"].ToString(); }
      set { base["EmployeeDepartment"] = value; }
    }

    [SettingsAllowAnonymous(false)]
    [ProfileProvider("EmployeeInfoProvider")]
    public EmployeeInfo Details
    {
      get { return (EmployeeInfo)base["EmployeeInfo"]; }
      set { base["EmployeeInfo"] = value; }
    }

  }

  public class EmployeeInfo
  {
    public string Name;
    public string Address;
    public string Phone;
    public string EmergencyContactName;
    public string EmergencyContactAddress;
    public string EmergencyContactPhone;
  }
}
Imports System.Web.Profile

Namespace Samples.AspNet.Profile

  Public Class EmployeeProfile
    Inherits ProfileBase

    <SettingsAllowAnonymous(False)> _
    <ProfileProvider("EmployeeInfoProvider")> _
    Public Property Department As String
      Get
        Return MyBase.Item("EmployeeDepartment").ToString()
      End Get
      Set
        MyBase.Item("EmployeeDepartment") = value
      End Set
    End Property

    <SettingsAllowAnonymous(False)> _
    <ProfileProvider("EmployeeInfoProvider")> _
    Public Property Details As EmployeeInfo
      Get
        Return CType(MyBase.Item("EmployeeInfo"), EmployeeInfo)
      End Get
      Set
        MyBase.Item("EmployeeInfo") = value
      End Set
    End Property
  End Class

  Public Class EmployeeInfo
    Public Name As String
    Public Address As String
    Public Phone As String
    Public EmergencyContactName As String
    Public EmergencyContactAddress As String
    Public EmergencyContactPhone As String
  End Class

End Namespace

Comentarios

ASP.net usa la ProfileBase clase para crear la clase utilizada para el perfil de usuario.ASP.NET uses the ProfileBase class to create the class used for the user profile. Cuando se inicia una aplicación que tiene el perfil de usuario habilitado, ASP.net crea una nueva clase ProfileCommonde tipo, que hereda de ProfileBase la clase.When an application that has the user profile enabled is started, ASP.NET creates a new class of type ProfileCommon, which inherits from the ProfileBase class. Los descriptores de acceso fuertemente tipados ProfileCommon se agregan a la clase para cada propiedad definida en la sección de configuración del perfil .Strongly typed accessors are added to the ProfileCommon class for each property defined in the profile configuration section. Los descriptores de acceso fuertemente tipados de la ProfileCommon clase SetPropertyValue llaman a los ProfileBase GetPropertyValue métodos y de la clase base para recuperar y establecer los valores de propiedad de perfil, respectivamente.The strongly typed accessors of the ProfileCommon class call the GetPropertyValue and SetPropertyValue methods of the ProfileBase base class to retrieve and set profile property values, respectively. Una instancia de la ProfileCommon clase se establece como el valor de la Profile propiedad para la aplicación ASP.net.An instance of the ProfileCommon class is set as the value of the Profile property for the ASP.NET application.

Para crear una instancia de un perfil de usuario en una aplicación de ASP.net, se recomienda utilizar el Create método.To create an instance of a user profile in an ASP.NET application, it is recommended that you use the Create method.

Notas para los herederosNotes to Inheritors

Puede crear una implementación de perfil personalizada que herede de la ProfileBase clase abstracta y defina las propiedades del perfil de usuario que no se especifican en el elemento de configuración de perfil .You can create a custom profile implementation that inherits from the ProfileBase abstract class and defines properties for the user profile that are not specified in the profile configuration element. Puede especificar un tipo de Perfil de usuario personalizado en el archivo Web. config con el inherits atributo del elemento de configuración de perfil , tal y como se muestra en el ejemplo siguiente.You can specify a custom user-profile type in the web.config file with the inherits attribute of the profile configuration element, as shown in the following example. El código de la EmployeeProfile clase se incluye en la sección ejemplo de este tema.The code for the EmployeeProfile class is included in the Example section of this topic.

<configuration>
   <system.web>
      <profile inherits="Samples.AspNet.Profile.EmployeeProfile"  
      defaultProvider="SqlProvider">  
      <providers>  
         <clear />  
         <add  
            name="SqlProvider"  
            type="System.Web.Profile.SqlProfileProvider"   
            connectionStringName="SqlServices"   
            description="SQL Profile Provider for Sample"/>   
         <add  
            name="EmployeeInfoProvider"  
            type="System.Web.Profile.SqlProfileProvider"   
            connectionStringName="SqlServices"   
            description="SQL Profile Provider for Employee Info"/>   
      </providers>  
      
      <properties>  
         <add name="GarmentSize" />  
      </properties>  
      </profile>  
   </system.web>
</configuration>

Constructores

ProfileBase() ProfileBase() ProfileBase() ProfileBase()

Crea una instancia de la clase ProfileBase.Creates an instance of the ProfileBase class.

Propiedades

Context Context Context Context

Obtiene el contexto de configuración asociado.Gets the associated settings context.

(Inherited from SettingsBase)
IsAnonymous IsAnonymous IsAnonymous IsAnonymous

Obtiene un valor que indica si el perfil de usuario es para un usuario anónimo.Gets a value indicating whether the user profile is for an anonymous user.

IsDirty IsDirty IsDirty IsDirty

Obtiene un valor que indica si se ha modificado alguna de las propiedades de perfil.Gets a value indicating whether any of the profile properties have been modified.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Obtiene un valor que indica si el acceso al objeto está sincronizado (es seguro para la ejecución de subprocesos).Gets a value indicating whether access to the object is synchronized (thread safe).

(Inherited from SettingsBase)
Item[String] Item[String] Item[String] Item[String]

Obtiene o establece un valor de propiedad de perfil indizado por el nombre de propiedad.Gets or sets a profile property value indexed by the property name.

LastActivityDate LastActivityDate LastActivityDate LastActivityDate

Obtiene la fecha y hora más reciente en que se leyó o modificó el perfil.Gets the most recent date and time that the profile was read or modified.

LastUpdatedDate LastUpdatedDate LastUpdatedDate LastUpdatedDate

Obtiene la fecha y hora más reciente en que se modificó el perfil.Gets the most recent date and time that the profile was modified.

Properties Properties Properties Properties

Obtiene una colección de objetos SettingsProperty para cada propiedad del perfil.Gets a collection of SettingsProperty objects for each property in the profile.

PropertyValues PropertyValues PropertyValues PropertyValues

Obtiene una colección de valores de propiedad de configuración.Gets a collection of settings property values.

(Inherited from SettingsBase)
Providers Providers Providers Providers

Obtiene una colección de proveedores de configuración.Gets a collection of settings providers.

(Inherited from SettingsBase)
UserName UserName UserName UserName

Obtiene el nombre de usuario del perfil.Gets the user name for the profile.

Métodos

Create(String) Create(String) Create(String) Create(String)

ASP.NET lo utiliza para crear una instancia de un perfil para el nombre de usuario especificado.Used by ASP.NET to create an instance of a profile for the specified user name.

Create(String, Boolean) Create(String, Boolean) Create(String, Boolean) Create(String, Boolean)

ASP.NET lo utiliza para crear una instancia de un perfil para el nombre de usuario especificado.Used by ASP.NET to create an instance of a profile for the specified user name. Toma un parámetro que indica si el usuario es un usuario autenticado o anónimo.Takes a parameter indicating whether the user is authenticated or anonymous.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetProfileGroup(String) GetProfileGroup(String) GetProfileGroup(String) GetProfileGroup(String)

Obtiene un grupo de propiedades identificadas por un nombre de grupo.Gets a group of properties identified by a group name.

GetPropertyValue(String) GetPropertyValue(String) GetPropertyValue(String) GetPropertyValue(String)

Obtiene el valor de una propiedad de perfil.Gets the value of a profile property.

GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection)

Inicializa las propiedades internas que utiliza el objeto SettingsBase.Initializes internal properties used by SettingsBase object.

(Inherited from SettingsBase)
Initialize(String, Boolean) Initialize(String, Boolean) Initialize(String, Boolean) Initialize(String, Boolean)

Inicializa la información y los valores de propiedad de perfil para el usuario actual.Initializes the profile property values and information for the current user.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
Save() Save() Save() Save()

Actualiza el origen de datos del perfil con los valores de propiedad de perfil cambiados.Updates the profile data source with changed profile property values.

SetPropertyValue(String, Object) SetPropertyValue(String, Object) SetPropertyValue(String, Object) SetPropertyValue(String, Object)

Establece el valor de una propiedad de perfil.Sets the value of a profile property.

ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Se aplica a

Consulte también: