ProfileBase Třída
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í.
Poskytuje netypový přístup k hodnotám a informacím vlastností profilu.
public ref class ProfileBase : System::Configuration::SettingsBase
public class ProfileBase : System.Configuration.SettingsBase
type ProfileBase = class
inherit SettingsBase
Public Class ProfileBase
Inherits SettingsBase
- Dědičnost
- Odvozené
Příklady
Následující příklad kódu ukazuje Web.config soubor, který určuje profil uživatele, který obsahuje ZipCode
vlastnost typu string
a RecentSearchList
vlastnost typu StringCollection. Vygenerovaná Profile vlastnost proudu HttpContext bude mít pro každou ze zadaných vlastností přístupové objekty silného typu.
<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>
Následující příklad ukazuje stránku ASP.NET, která přečte a nastaví vlastnost zadanou ZipCode
pro profil uživatele. Před pokusem o spuštění tohoto kódu nastavte zprostředkovatele na výchozí AspNetSqlProvider
v nastavení konfigurace ASP.NET webu.
<%@ 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>
Následující příklad kódu definuje třídu, která dědí z ProfileBase třídy a vytvoří vlastní profil. Typ vlastního profilu je určen v atributu inherits
elementu konfigurace profilu v souboru Web.config pro aplikaci.
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ěřují, že uživatelský vstup neobsahuje skript nebo elementy HTML. Další informace najdete v tématu Přehled zneužití skriptů.
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
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 ASP.NET vytvoří novou třídu typu ProfileCommon
, která dědí z ProfileBase třídy. Přístupové objekty silného ProfileCommon
typu jsou přidány do třídy pro každou vlastnost definovanou v části konfigurace profilu . Objekty ProfileCommon
se silnými typy 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 ASP.NET aplikace.
Pokud chcete vytvořit instanci profilu uživatele v aplikaci ASP.NET, doporučujeme použít metodu Create .
Poznámky pro dědice
Můžete vytvořit vlastní implementaci profilu, která dědí z ProfileBase abstraktní třídy a definuje vlastnosti profilu uživatele, které nejsou zadány v elementu konfigurace profilu . V souboru web.config můžete zadat vlastní typ profilu uživatele s atributem inherits
elementu konfigurace profilu , jak je znázorněno v následujícím příkladu. Kód pro EmployeeProfile
třídu je zahrnut v části Příklad tohoto tématu.
<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>
Konstruktory
ProfileBase() |
Vytvoří instanci objektu ProfileBase třídy. |
Vlastnosti
Context |
Získá kontext přidruženého nastavení. (Zděděno od SettingsBase) |
IsAnonymous |
Získá hodnotu označující, zda profil uživatele je pro anonymního uživatele. |
IsDirty |
Získá hodnotu označující, zda byly změněny některé vlastnosti profilu. |
IsSynchronized |
Získá hodnotu označující, zda přístup k objektu je synchronizován (bez vláken). (Zděděno od SettingsBase) |
Item[String] |
Získá nebo nastaví hodnotu vlastnosti profilu indexované názvem vlastnosti. |
LastActivityDate |
Získá nejnovější datum a čas, kdy byl profil přečten nebo změněn. |
LastUpdatedDate |
Získá poslední datum a čas, kdy byl profil změněn. |
Properties |
Získá kolekci SettingsProperty objektů pro každou vlastnost v profilu. |
PropertyValues |
Získá kolekci hodnot vlastností nastavení. (Zděděno od SettingsBase) |
Providers |
Získá kolekci zprostředkovatelů nastavení. (Zděděno od SettingsBase) |
UserName |
Získá uživatelské jméno profilu. |
Metody
Create(String) |
Používá ASP.NET k vytvoření instance profilu pro zadané uživatelské jméno. |
Create(String, Boolean) |
Používá ASP.NET k vytvoření instance profilu pro zadané uživatelské jméno. Přebírá parametr označující, jestli je uživatel ověřený nebo anonymní. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetProfileGroup(String) |
Získá skupinu vlastností identifikovaných názvem skupiny. |
GetPropertyValue(String) |
Získá hodnotu vlastnosti profilu. |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) |
Inicializuje interní vlastnosti používané objektem SettingsBase . (Zděděno od SettingsBase) |
Initialize(String, Boolean) |
Inicializuje hodnoty vlastností profilu a informace pro aktuálního uživatele. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
Save() |
Aktualizuje zdroj dat profilu se změněnými hodnotami vlastností profilu. |
SetPropertyValue(String, Object) |
Nastaví hodnotu vlastnosti profilu. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |