ProfileBase Konstruktor
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en instans av ProfileBase klassen.
public:
ProfileBase();
public ProfileBase();
Public Sub New ()
Undantag
Attributet enabled för profilavsnittet i Web.config-filen är false.
Det gick inte att skapa en egenskapstyp som anges i profilavsnittet i Web.config-filen.
-eller-
Attributet allowAnonymous för en egenskap i profilavsnittet i Web.config-filen är inställt på true och enabledattributet för elementet< anonymousIdentification> är inställt på false.
-eller-
Attributet serializeAs för en egenskap i profilavsnittet i Web.config-filen är inställt på Binary och IsSerializable egenskapen för den angivna type returnerar false.
-eller-
Det gick inte att hitta namnet på en provider som angetts med provider attributet för en profilegenskap i Providers samlingen.
-eller-
Det gick inte att hitta den type angivna för en profilegenskap.
-eller-
En profilegenskap har angetts med ett namn som matchar ett egenskapsnamn för den basklass som anges i attributet för inheritsprofilavsnittet .
Exempel
Följande Web.config-fil anger en användarprofil som innehåller en ZipCode egenskap av typen string och en RecentSearchList egenskap av typen StringCollection. Den genererade Profile egenskapen för den aktuella HttpContext har starkt typbehörigheter för var och en av de angivna egenskaperna.
<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>
Följande ASP.NET sidan läser och anger egenskapen ZipCode som angetts för användarprofilen.
Important
Det här exemplet innehåller en textruta som accepterar användarindata, vilket är ett potentiellt säkerhetshot. Som standard kontrollerar ASP.NET webbsidor att användarindata inte innehåller skript- eller HTML-element. Mer information finns i Översikt över skriptexploateringar.
<%@ 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>
Kommentarer
ASP.NET använder klassen ProfileBase för att skapa klassen som används för användarprofilen. När ett program som har användarprofilen aktiverad startas skapar ASP.NET en ny klass av typen ProfileCommon, som ärver från klassen ProfileBase. Starkt skrivna accessorer läggs till i ProfileCommon klassen för varje egenskap som definieras i avsnittet profilkonfiguration . De starkt inskrivna åtkomsterna i ProfileCommon klassen anropar GetPropertyValue metoderna och SetPropertyValue för basklassen ProfileBase för att hämta respektive ange egenskapsvärden för profil. En instans av klassen ProfileCommon anges som värdet för egenskapen Profile för ASP.NET-programmet.
Note
Basklassen som används för att generera klassen som lagras i Profile egenskapen kan åsidosättas med hjälp inherits av attributet för profilavsnittet i konfigurationsfilen. I det här fallet anger du en anpassad klass som ärver från basklassen ProfileBase .
Konstruktorn är inte avsedd att användas från programkoden. Om du vill skapa en instans av en användarprofil använder du Create metoden .