ProfileBase Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Nem gépelt hozzáférést biztosít a profiltulajdonságok értékeihez és adataihoz.
public ref class ProfileBase : System::Configuration::SettingsBase
public class ProfileBase : System.Configuration.SettingsBase
type ProfileBase = class
inherit SettingsBase
Public Class ProfileBase
Inherits SettingsBase
- Öröklődés
- Származtatott
Példák
Az alábbi példakód egy Web.config fájlt mutat be, amely egy olyan felhasználói profilt határoz meg, amely egy típustulajdonságot ZipCode és egy stringRecentSearchList típustulajdonságot StringCollectiontartalmaz. Az áram Profile generált HttpContext tulajdonsága erősen beírt tartozékokkal rendelkezik a megadott tulajdonságok mindegyikéhez.
<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>
Az alábbi példában egy ASP.NET lap látható, amely beolvassa és beállítja a felhasználói profilhoz megadott ZipCode tulajdonságot. A kód futtatása előtt állítsa a szolgáltatót az alapértelmezett AspNetSqlProvider a webhely ASP.NET konfigurációs beállításai között.
<%@ 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>
Az alábbi példakód egy olyan osztályt határoz meg, amely az ProfileBase osztálytól öröklődve hoz létre egyéni profilt. Az egyéni profil típusa az inherits alkalmazás Web.config fájljának profilkonfigurációs elemének attribútumában van megadva.
Important
Ez a példa egy szövegdobozt tartalmaz, amely elfogadja a felhasználói bemenetet, ami potenciális biztonsági fenyegetés. Alapértelmezés szerint ASP.NET weblapok ellenőrzik, hogy a felhasználói bevitel nem tartalmaz-e szkript- vagy HTML-elemeket. További információ: Szkript kihasználása – áttekintés.
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
Megjegyzések
ASP.NET a ProfileBase osztály használatával hozza létre a felhasználói profilhoz használt osztályt. A felhasználói profilt engedélyező alkalmazás indításakor ASP.NET létrehoz egy új ProfileCommon típusú osztályt, amely a ProfileBase osztálytól örököl. A rendszer a profilkonfigurációs szakaszban meghatározott minden tulajdonsághoz hozzáadja az erősen gépelt tartozékokat ProfileCommon az osztályhoz. Az osztály erősen gépelt tartozékai meghívják az ProfileCommonGetPropertyValue alaposztály metódusait a SetPropertyValue profiltulajdonságértékek ProfileBase lekéréséhez és beállításához. A ProfileCommon osztály egy példánya a ASP.NET alkalmazás Profile tulajdonságának értékeként van beállítva.
Ha felhasználói profilpéldányt szeretne létrehozni egy ASP.NET alkalmazásban, ajánlott a Create metódust használni.
Megjegyzések az öröklőkhöz
Létrehozhat egy egyéni profil-implementációt, amely örökli az ProfileBase absztrakt osztályt, és meghatározza a profilkonfiguráció elemében nem megadott felhasználói profil tulajdonságait. A web.config fájlban megadhat egy egyéni felhasználói profiltípust a inherits profilkonfigurációs elem attribútumával, ahogyan az az alábbi példában látható. Az osztály kódját EmployeeProfile a témakör Példa szakasza tartalmazza.
<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>
Konstruktorok
| Name | Description |
|---|---|
| ProfileBase() |
Létrehozza a ProfileBase osztály példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| Context |
Lekéri a társított beállítások környezetét. (Öröklődés forrása SettingsBase) |
| IsAnonymous |
Beolvas egy értéket, amely jelzi, hogy a felhasználói profil névtelen felhasználó-e. |
| IsDirty |
Beolvas egy értéket, amely jelzi, hogy a profiltulajdonságok bármelyike módosult-e. |
| IsSynchronized |
Lekérdez egy értéket, amely jelzi, hogy az objektumhoz való hozzáférés szinkronizálva van-e (szálbiztos). (Öröklődés forrása SettingsBase) |
| Item[String] |
Lekéri vagy beállítja a tulajdonságnév alapján indexelt profiltulajdonság értékét. |
| LastActivityDate |
A profil legutóbbi olvasásának vagy módosításának dátumát és időpontját kapja meg. |
| LastUpdatedDate |
A profil módosításának legutóbbi dátumát és időpontját kapja meg. |
| Properties |
Lekéri a SettingsProperty profil minden tulajdonságához tartozó objektumgyűjteményt. |
| PropertyValues |
Lekéri a beállítások tulajdonságértékeinek gyűjteményét. (Öröklődés forrása SettingsBase) |
| Providers |
Lekéri a beállításszolgáltatók gyűjteményét. (Öröklődés forrása SettingsBase) |
| UserName |
Lekéri a profil felhasználónevét. |
Metódusok
| Name | Description |
|---|---|
| Create(String, Boolean) |
A ASP.NET a megadott felhasználónévhez tartozó profilpéldány létrehozásához használja. Egy paramétert vesz fel, amely jelzi, hogy a felhasználó hitelesítve van-e vagy névtelen. |
| Create(String) |
A ASP.NET a megadott felhasználónévhez tartozó profilpéldány létrehozásához használja. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetProfileGroup(String) |
Egy csoportnév által azonosított tulajdonságcsoportot kap. |
| GetPropertyValue(String) |
Lekéri egy profiltulajdonság értékét. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) |
Inicializálja az objektum által SettingsBase használt belső tulajdonságokat. (Öröklődés forrása SettingsBase) |
| Initialize(String, Boolean) |
Inicializálja az aktuális felhasználó profiltulajdonság-értékeit és adatait. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| Save() |
Frissíti a profil adatforrását megváltozott profiltulajdonság-értékekkel. |
| SetPropertyValue(String, Object) |
Beállítja egy profiltulajdonság értékét. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |