ProfileBase Costruttore
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un'istanza della classe ProfileBase.
public:
ProfileBase();
public ProfileBase ();
Public Sub New ()
Eccezioni
L'attributo enabled
della sezione profile del file Web.config è false
.
Non è stato possibile creare un tipo di proprietà specificato nella sezione profile del file Web.config.
-oppure-
L'attributo allowAnonymous
di una proprietà nella sezione profile del file Web.config è impostato su true
e l'attributo enabled
dell'elemento <anonymousIdentification> è impostato su false
.
-oppure-
L'attributo serializeAs
di una proprietà nella sezione profile del file Web.config è impostato su Binary e la proprietà IsSerializable di type
specificato restituisce false
.
-oppure-
Non è stato possibile trovare il nome di un provider specificato mediante l'attributo provider
di una proprietà del profilo nell'insieme Providers.
-oppure-
Non è stato possibile trovare il type
specificato per una proprietà del profilo.
-oppure-
Una proprietà del profilo è stata specificata con un nome corrispondente a una proprietà nella classe base specificata nell'attributo inherits
della sezione profile.
Esempio
Il file di Web.config seguente specifica un profilo utente che contiene una proprietà di tipo e una ZipCode
RecentSearchList
proprietà di tipo StringCollection.string
La proprietà generata Profile dell'oggetto corrente HttpContext avrà funzioni di accesso fortemente tipizzata per ognuna delle proprietà specificate.
<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>
La pagina di ASP.NET seguente legge e imposta la ZipCode
proprietà specificata per il profilo utente.
Importante
Questo esempio contiene una casella di testo che accetta l'input utente, ovvero una potenziale minaccia di 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 Cenni preliminari sugli attacchi tramite 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>
Commenti
ASP.NET usa la classe per creare la ProfileBase classe usata per il profilo utente. Quando viene avviata un'applicazione con il profilo utente abilitato, ASP.NET crea una nuova classe di tipo ProfileCommon
, che eredita dalla ProfileBase classe . Le funzioni di accesso fortemente tipizzata vengono aggiunte alla ProfileCommon
classe per ogni proprietà definita nella sezione configurazione del profilo . Le funzioni di accesso fortemente tipizzata della ProfileCommon
classe chiamano rispettivamente i GetPropertyValue metodi e SetPropertyValue della ProfileBase classe base per recuperare e impostare i valori delle proprietà del profilo. Un'istanza della ProfileCommon
classe viene impostata come valore della Profile proprietà per l'applicazione ASP.NET.
Nota
È possibile eseguire l'override della classe base usata per generare la classe archiviata nella Profile proprietà usando l'attributo inherits
della sezione del profilo del file di configurazione. In questo caso si specifica una classe personalizzata che eredita dalla ProfileBase classe base.
Questo costruttore non deve essere usato dal codice dell'applicazione. Per creare un'istanza di un profilo utente, usare il Create metodo .