ProfileBase Construtor
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.
Cria uma instância de ProfileBase classe.
public:
ProfileBase();
public ProfileBase ();
Public Sub New ()
Exceções
O atributo enabled
da seção perfil do arquivo Web.config é false
.
Não foi possível criar um tipo de propriedade especificado na seção perfil do arquivo Web.config.
- ou -
O atributo allowAnonymous
de uma propriedade na seção perfil do arquivo Web.config é definido como true
e o atributo enabled
do elemento <anonymousIdentification> é definido como false
.
- ou -
O atributo serializeAs
de uma propriedade na seção perfil do arquivo Web.config é definido como Binary e a propriedade IsSerializable do type
especificado retorna false
.
- ou -
O nome de um provedor especificado que usa o atributo provider
de uma propriedade de perfil não pôde ser encontrado na coleção Providers.
- ou -
Não foi possível encontrar o type
especificado para uma propriedade de perfil.
- ou -
Uma propriedade de perfil foi especificada com um nome que corresponde a um nome de propriedade na classe base especificada no atributo inherits
da seção perfil.
Exemplos
O arquivo de Web.config a seguir 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>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<anonymousIdentification enabled="true" />
<profile defaultProvider="SqlProvider" >
<providers>
<add
name="SqlProvider"
connectionStringName="SqlServices"
applicationName="ProfileBaseApplication"
type="System.Web.Profile.SqlProfileProvider" />
</providers>
<properties>
<add name="ZipCode" allowAnonymous="true" />
<add name="RecentSearchList"
type="System.Collections.Specialized.StringCollection"
serializeAs="Xml"
allowAnonymous="true" />
</properties>
</profile>
</system.web>
</configuration>
A página ASP.NET a seguir lê e define a ZipCode
propriedade especificada para o perfil do usuário.
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.
<%@ 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>
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 tipado 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.
Observação
A classe base usada para gerar a classe armazenada na Profile propriedade pode ser substituída usando o inherits
atributo da seção de perfil do arquivo de configuração. Nesse caso, você especificaria uma classe personalizada que herda da ProfileBase classe base.
Esse construtor não se destina a ser usado do código do aplicativo. Para criar uma instância de um perfil de usuário, use o Create método .