ProfileBase Osztály

Definíció

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
ProfileBase
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)

A következőre érvényes:

Lásd még