ProfileBase Konstruktor
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří instanci objektu ProfileBase třídy.
public:
ProfileBase();
public ProfileBase ();
Public Sub New ()
Výjimky
Atribut enabled
oddílu profilu souboru Web.config je false
.
Nelze vytvořit typ vlastnosti zadaný v oddílu profilu souboru Web.config.
-nebo-
Atribut allowAnonymous
pro vlastnost v oddílu profilu Web.config souboru je nastaven na true
a enabled
atribut <anonymousIdentification> element je nastaven na false
hodnotu .
-nebo-
Atribut serializeAs
vlastnosti v oddílu profilu souboru Web.config je nastaven na Binary hodnotu a IsSerializable vlastnost zadaného type
objektu vrátí false
hodnotu .
-nebo-
Název zprostředkovatele zadaného pomocí atributu provider
vlastnosti profilu nebyl v kolekci Providers nalezen.
-nebo-
Zadaný type
parametr pro vlastnost profilu nebyl nalezen.
-nebo-
Vlastnost profilu byla zadána s názvem, který odpovídá názvu vlastnosti základní třídy zadané v inherits
atributu oddílu profilu .
Příklady
Následující Web.config souboru určuje profil uživatele, který obsahuje ZipCode
vlastnost typu string
a RecentSearchList
vlastnost typu StringCollection. Vygenerovaná Profile vlastnost aktuálního HttpContext typu bude mít přístupové objekty silného typu pro každou ze zadaných vlastností.
<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>
Následující ASP.NET stránka přečte a nastaví ZipCode
vlastnost určenou pro profil uživatele.
Důležité
Tento příklad obsahuje textové pole, které přijímá vstup uživatele, což je potenciální bezpečnostní hrozba. Ve výchozím nastavení ASP.NET webové stránky ověřte, že uživatelský vstup neobsahuje skript nebo elementy HTML. Další informace najdete v tématu Přehled zneužití skriptů.
<%@ 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>
Poznámky
ASP.NET použije ProfileBase třídu k vytvoření třídy použité pro profil uživatele. Při spuštění aplikace s povoleným profilem uživatele vytvoří ASP.NET novou třídu typu ProfileCommon
, která dědí z třídy ProfileBase . Přístupové objekty silného ProfileCommon
typu jsou přidány do třídy pro každou vlastnost definovanou v části konfigurace profilu . Přístupové objekty silného ProfileCommon
typu třídy volají GetPropertyValue metody ProfileBase a SetPropertyValue základní třídy k načtení a nastavení hodnot vlastností profilu v uvedeném pořadí. Instance ProfileCommon
třídy je nastavena jako hodnota Profile vlastnosti pro aplikaci ASP.NET.
Poznámka
Základní třídu použitou ke generování třídy uložené ve Profile vlastnosti lze přepsat pomocí atributu inherits
oddílu profilu konfiguračního souboru. V tomto případě byste zadali vlastní třídu, která dědí ze ProfileBase základní třídy.
Tento konstruktor není určen k použití z kódu aplikace. K vytvoření instance profilu uživatele použijte metodu Create .