Aracılığıyla paylaş


ProfileBase Oluşturucu

Tanım

ProfileBase sınıfının bir örneğini oluşturur.

public:
 ProfileBase();
public ProfileBase ();
Public Sub New ()

Özel durumlar

enabledWeb.config dosyasının profil bölümünün özniteliğidirfalse.

Web.config dosyasının profil bölümünde belirtilen özellik türü oluşturulamadı.

-veya-

allowAnonymousWeb.config dosyasının profil bölümündeki bir özelliğin özniteliği olaraktrue, anonymousIdentification> öğesinin< özniteliği ise olarak falseenabled ayarlanır.

-veya-

serializeAsWeb.config dosyasının profil bölümündeki bir özelliğin özniteliği olarak ayarlanır Binary ve IsSerializable belirtilen type özelliği döndürürfalse.

-veya-

Profil özelliğinin özniteliği kullanılarak provider belirtilen sağlayıcının adı koleksiyonda Providers bulunamadı.

-veya-

type Profil özelliği için belirtilen bulunamadı.

-veya-

Profil özelliği, profil bölümünün özniteliğinde inherits belirtilen temel sınıftaki bir özellik adıyla eşleşen bir adla belirtildi.

Örnekler

Aşağıdaki Web.config dosyası, türünde bir özellik ve türünde string bir ZipCode özellik StringCollectioniçeren bir RecentSearchList kullanıcı profilini belirtir. Geçerlinin HttpContext oluşturulan Profile özelliği, belirtilen özelliklerin her biri için kesin olarak belirtilmiş erişimcilere sahip olacaktır.

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

Aşağıdaki ASP.NET sayfası, kullanıcı profili için belirtilen özelliği okur ve ayarlar ZipCode .

Önemli

Bu örnek, olası bir güvenlik tehdidi olan kullanıcı girişini kabul eden bir metin kutusu içerir. Varsayılan olarak, ASP.NET Web sayfaları kullanıcı girişinin betik veya HTML öğeleri içermediğini doğrular. Daha fazla bilgi için bkz. Betik Açıklarına Genel Bakış.

<%@ 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>

Açıklamalar

ASP.NET, kullanıcı profili için kullanılan sınıfı oluşturmak için sınıfını kullanır ProfileBase . Kullanıcı profilinin etkinleştirildiği bir uygulama başlatıldığında, ASP.NET sınıfından ProfileBase devralan yeni bir tür ProfileCommonsınıfı oluşturur. Kesin olarak türü belirlenmiş erişimciler, profil yapılandırması bölümünde tanımlanan her özellik için sınıfına eklenirProfileCommon. Sınıfın ProfileCommon kesin olarak türü belirlenmiş erişimcileri, sırasıyla profil özellik değerlerini almak ve ayarlamak için temel sınıfın ProfileBase ve SetPropertyValue yöntemlerini çağırırGetPropertyValue. sınıfının bir örneği ProfileCommon , ASP.NET uygulamasının Profile özelliğinin değeri olarak ayarlanır.

Not

özelliğinde Profile depolanan sınıfı oluşturmak için kullanılan temel sınıf, yapılandırma dosyasının inheritsprofil bölümünün özniteliği kullanılarak geçersiz kılınabilir. Bu durumda, temel sınıftan ProfileBase devralan özel bir sınıf belirtirsiniz.

Bu oluşturucu, uygulama kodundan kullanılmak üzere tasarlanmamıştır. Kullanıcı profilinin bir örneğini oluşturmak için yöntemini kullanın Create .

Şunlara uygulanır

Ayrıca bkz.