ProfileBase.GetPropertyValue(String) Método

Definición

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

public:
 System::Object ^ GetPropertyValue(System::String ^ propertyName);
public object GetPropertyValue (string propertyName);
member this.GetPropertyValue : string -> obj
Public Function GetPropertyValue (propertyName As String) As Object

Parámetros

propertyName
String

Nombre de la propiedad de perfil.The name of the profile property.

Devoluciones

Object

Valor de la propiedad de perfil especificada, que se considera de tipo object.The value of the specified profile property, typed as object.

Excepciones

Se ha intentado establecer un valor de propiedad en un perfil anónimo donde el atributo allowAnonymous de la propiedad es false.An attempt was made to set a property value on an anonymous profile where the property's allowAnonymous attribute is false.

No hay ninguna propiedad definida para el perfil actual.There are no properties defined for the current profile.

o bien-or-

El nombre de propiedad de perfil especificado no existe en el perfil actual.The specified profile property name does not exist in the current profile.

o bien-or-

El proveedor de la propiedad de perfil determinada no ha reconocido la propiedad especificada.The provider for the specified profile property did not recognize the specified property.

Ejemplos

En el ejemplo de código siguiente se muestra una página ASP.NET que lee y establece la ZipCode propiedad especificada para el perfil de usuario.The following code example shows an ASP.NET page that reads and sets the ZipCode property specified for the user profile. Para obtener un ejemplo de un archivo Web.config que especifica las propiedades del perfil de usuario, vea el ejemplo proporcionado para la ProfileBase clase.For an example of a Web.config file that specifies properties for the user profile, see the example provided for the ProfileBase class.

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.

<%@ 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>

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 de tipo ProfileCommon , que hereda de la ProfileBase 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 se agregan a la ProfileCommon 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 llaman al GetPropertyValue método para recuperar los valores sin tipo del ProfileProvider que el descriptor de acceso generado convierte a continuación como el tipo especificado y se devuelve como el valor de la propiedad.The strongly typed accessors of the ProfileCommon class call the GetPropertyValue method to retrieve untyped values from the ProfileProvider that the generated accessor then casts as the specified type and returns as the property value.

Puede usar el GetPropertyValue método para recuperar los valores de propiedad del perfil de usuario de la aplicación por nombre.You can use the GetPropertyValue method to retrieve property values of the user profile for your application by name. Los valores devueltos no tienen tipo y deben convertirse en el tipo de objeto específico cuando se recuperan.Returned values are untyped and must be cast as the specific object type when retrieved. Para el acceso fuertemente tipado a los valores de propiedad de perfil, puede tener acceso a la propiedad por nombre como un miembro de la propiedad de perfil disponible en cada página, por ejemplo, Profile.CustomerAddress .For strongly typed access to profile property values, you can access the property by name as a member of the Profile property available on each page, for example, Profile.CustomerAddress.

Se aplica a