ProfileBase Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece acesso sem tipo para informações e valores de propriedade de perfil.
public ref class ProfileBase : System::Configuration::SettingsBase
public class ProfileBase : System.Configuration.SettingsBase
type ProfileBase = class
inherit SettingsBase
Public Class ProfileBase
Inherits SettingsBase
- Herança
- Derivado
Exemplos
O exemplo de código a seguir mostra um arquivo Web.config que especifica um perfil de usuário que contém uma ZipCode
propriedade do tipo string
e uma RecentSearchList
propriedade do tipo StringCollection. A propriedade gerada Profile do atual HttpContext terá acessadores fortemente tipados para cada uma das propriedades especificadas.
<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>
O exemplo a seguir mostra uma página ASP.NET que lê e define a ZipCode
propriedade especificada para o perfil do usuário. Antes de tentar executar esse código, defina o provedor como o padrão AspNetSqlProvider
nas configurações de ASP.NET do 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>
O exemplo de código a seguir define uma classe que herda da ProfileBase classe para criar um perfil personalizado. O tipo do perfil personalizado é especificado no inherits
atributo do elemento de configuração de perfil no arquivo Web.config de um aplicativo.
Importante
Este exemplo contém uma caixa de texto que aceita a entrada do usuário, que é uma possível ameaça à segurança. Por padrão, ASP.NET páginas da Web validam que a entrada do usuário não inclui elementos HTML ou script. Para obter mais informações, consulte Visão geral de explorações de script.
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
Comentários
ASP.NET usa a ProfileBase classe para criar a classe usada para o perfil do usuário. Quando um aplicativo que tem o perfil de usuário habilitado é iniciado, ASP.NET cria uma nova classe do tipo ProfileCommon
, que herda da ProfileBase classe . Acessadores fortemente tipados são adicionados à ProfileCommon
classe para cada propriedade definida na seção de configuração de perfil . Os acessadores fortemente tipados da ProfileCommon
classe chamam os GetPropertyValue métodos e SetPropertyValue da ProfileBase classe base para recuperar e definir valores de propriedade de perfil, respectivamente. Uma instância da ProfileCommon
classe é definida como o valor da Profile propriedade para o aplicativo ASP.NET.
Para criar uma instância de um perfil de usuário em um aplicativo ASP.NET, é recomendável que você use o Create método .
Notas aos Herdeiros
Você pode criar uma implementação de perfil personalizado que herda da ProfileBase classe abstrata e define propriedades para o perfil de usuário que não são especificadas no elemento de configuração de perfil . Você pode especificar um tipo de perfil de usuário personalizado no arquivo web.config com o inherits
atributo do elemento de configuração de perfil , conforme mostrado no exemplo a seguir. O código da EmployeeProfile
classe está incluído na seção Exemplo deste tópico.
<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>
Construtores
ProfileBase() |
Cria uma instância de ProfileBase classe. |
Propriedades
Context |
Obtém o contexto de configurações associado. (Herdado de SettingsBase) |
IsAnonymous |
Obtém um valor que indica se o perfil do usuário é para um usuário anônimo. |
IsDirty |
Obtém um valor que indica se qualquer uma das propriedades de perfil foi modificada. |
IsSynchronized |
Obtém um valor que indica se o acesso ao objeto é sincronizado (thread-safe). (Herdado de SettingsBase) |
Item[String] |
Obtém ou define um valor da propriedade de perfil indexado pelo nome da propriedade. |
LastActivityDate |
Obtém a data e hora mais recentes em que o perfil foi lido ou modificado. |
LastUpdatedDate |
Obtém a data e hora mais recentes em que o perfil foi modificado. |
Properties |
Obtém uma coleção de objetos SettingsProperty para cada propriedade no perfil. |
PropertyValues |
Obtém uma coleção de valores da propriedade de configurações. (Herdado de SettingsBase) |
Providers |
Obtém uma coleção de provedores de configurações. (Herdado de SettingsBase) |
UserName |
Obtém o nome de usuário do perfil. |
Métodos
Create(String) |
Usado pelo ASP.NET para criar uma instância de um perfil para o nome de usuário especificado. |
Create(String, Boolean) |
Usado pelo ASP.NET para criar uma instância de um perfil para o nome de usuário especificado. Aceita um parâmetro que indica se o usuário é autenticado ou anônimo. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetProfileGroup(String) |
Obtém um grupo de propriedades identificado por um nome de grupo. |
GetPropertyValue(String) |
Obtém o valor de uma propriedade de perfil. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) |
Inicializa as propriedades internas usadas pelo objeto SettingsBase. (Herdado de SettingsBase) |
Initialize(String, Boolean) |
Inicializa os valores de propriedade de perfil e informações para o usuário atual. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
Save() |
Atualiza a fonte de dados de perfil com valores de propriedade de perfil alterados. |
SetPropertyValue(String, Object) |
Define o valor de uma propriedade de perfil. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |