<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.NET_Tutorial%2FProfile%2FIntroduction</id>
		<title>ASP.NET Tutorial/Profile/Introduction - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.NET_Tutorial%2FProfile%2FIntroduction"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Profile/Introduction&amp;action=history"/>
		<updated>2026-04-29T15:57:48Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/Profile/Introduction&amp;diff=3436&amp;oldid=prev</id>
		<title> в 15:30, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Profile/Introduction&amp;diff=3436&amp;oldid=prev"/>
				<updated>2010-05-26T15:30:57Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:30, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/Profile/Introduction&amp;diff=3437&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Profile/Introduction&amp;diff=3437&amp;oldid=prev"/>
				<updated>2010-05-26T12:00:56Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Creating Complex Profile Properties==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
File: App_Code\ShoppingCart.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Web.Profile;&lt;br /&gt;
namespace MyNamespace&lt;br /&gt;
{&lt;br /&gt;
    public class ShoppingCart&lt;br /&gt;
    {&lt;br /&gt;
        private List&amp;lt;CartItem&amp;gt; _items = new List&amp;lt;CartItem&amp;gt;();&lt;br /&gt;
        public List&amp;lt;CartItem&amp;gt; Items&lt;br /&gt;
        {&lt;br /&gt;
             get { return _items; }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public class CartItem&lt;br /&gt;
    {&lt;br /&gt;
        private string _name;&lt;br /&gt;
        private decimal _price;&lt;br /&gt;
        private string _description;&lt;br /&gt;
        public string Name&lt;br /&gt;
        {&lt;br /&gt;
            get { return _name; }&lt;br /&gt;
            set { _name = value; }&lt;br /&gt;
        }&lt;br /&gt;
        public decimal Price&lt;br /&gt;
        {&lt;br /&gt;
            get { return _price; }&lt;br /&gt;
            set { _price = value; }&lt;br /&gt;
        }&lt;br /&gt;
        public string Description&lt;br /&gt;
        {&lt;br /&gt;
            get { return _description; }&lt;br /&gt;
            set { _description = value; }&lt;br /&gt;
        }&lt;br /&gt;
        public CartItem() { }&lt;br /&gt;
        public CartItem(string name, decimal price, string description)&lt;br /&gt;
        {&lt;br /&gt;
            _name  = name;&lt;br /&gt;
            _price = price;&lt;br /&gt;
            _description = description;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
File: Web.Config&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
&amp;lt;system.web&amp;gt;&lt;br /&gt;
  &amp;lt;profile&amp;gt;&lt;br /&gt;
    &amp;lt;properties&amp;gt;&lt;br /&gt;
      &amp;lt;add name=&amp;quot;ShoppingCart&amp;quot; type=&amp;quot;MyNamespace.ShoppingCart&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/properties&amp;gt;&lt;br /&gt;
  &amp;lt;/profile&amp;gt;&lt;br /&gt;
&amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File: Default.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;MyNamespace&amp;quot; %&amp;gt;&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    void Page_PreRender()&lt;br /&gt;
    {&lt;br /&gt;
        grdShoppingCart.DataSource = Profile.ShoppingCart.Items;&lt;br /&gt;
        grdShoppingCart.DataBind();&lt;br /&gt;
    }&lt;br /&gt;
    protected void btnAdd_Click(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        CartItem newItem = new CartItem(txtName.Text, decimal.Parse(txtPrice.Text), txtDescription.Text);&lt;br /&gt;
        Profile.ShoppingCart.Items.Add(newItem);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Show ShoppingCart&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;asp:GridView&lt;br /&gt;
        id=&amp;quot;grdShoppingCart&amp;quot;&lt;br /&gt;
        EmptyDataText=&amp;quot;There are no items in your shopping cart&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;legend&amp;gt;Add Product&amp;lt;/legend&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Label&lt;br /&gt;
        id=&amp;quot;lblName&amp;quot;&lt;br /&gt;
        Text=&amp;quot;Name:&amp;quot;&lt;br /&gt;
        AssociatedControlID=&amp;quot;txtName&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:TextBox&lt;br /&gt;
        id=&amp;quot;txtName&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Label&lt;br /&gt;
        id=&amp;quot;lblPrice&amp;quot;&lt;br /&gt;
        Text=&amp;quot;Price:&amp;quot;&lt;br /&gt;
        AssociatedControlID=&amp;quot;txtPrice&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:TextBox&lt;br /&gt;
        id=&amp;quot;txtPrice&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Label&lt;br /&gt;
        id=&amp;quot;lblDescription&amp;quot;&lt;br /&gt;
        Text=&amp;quot;Description:&amp;quot;&lt;br /&gt;
        AssociatedControlID=&amp;quot;txtDescription&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:TextBox&lt;br /&gt;
        id=&amp;quot;txtDescription&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Button&lt;br /&gt;
        id=&amp;quot;btnAdd&amp;quot;&lt;br /&gt;
        Text=&amp;quot;Add To Cart&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;btnAdd_Click&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Defining default values for personalization properties==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;system.web&amp;gt;&lt;br /&gt;
     &amp;lt;profile&amp;gt;&lt;br /&gt;
        &amp;lt;properties&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
           &amp;lt;add name=&amp;quot;FirstName&amp;quot; type=&amp;quot;System.String&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;add name=&amp;quot;LastName&amp;quot; type=&amp;quot;System.String&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;add name=&amp;quot;LastVisited&amp;quot; type=&amp;quot;System.DateTime&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;add name=&amp;quot;Age&amp;quot; type=&amp;quot;System.Integer&amp;quot; /&amp;gt;&lt;br /&gt;
           &amp;lt;add name=&amp;quot;Member&amp;quot; type=&amp;quot;System.Boolean&amp;quot; defaultValue=&amp;quot;False&amp;quot; /&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
        &amp;lt;/properties&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;/profile&amp;gt;&lt;br /&gt;
    &amp;lt;authentication mode=&amp;quot;Windows&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Get / set profile data defined in Web.config==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; CodeFile=&amp;quot;Default.aspx.cs&amp;quot; Inherits=&amp;quot;SimpleTypes&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    First Name:&amp;lt;asp:TextBox ID=&amp;quot;txtFirst&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;Harriet&amp;lt;/asp:TextBox&amp;gt;&lt;br /&gt;
    Last Name:&amp;lt;asp:TextBox ID=&amp;quot;txtLast&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;Smythe&amp;lt;/asp:TextBox&amp;gt;&lt;br /&gt;
    Date of Birth:&amp;lt;asp:Calendar ID=&amp;quot;Calendar1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:Calendar&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Button ID=&amp;quot;cmdShow&amp;quot; runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;cmdShow_Click&amp;quot; Text=&amp;quot;Show Profile Data&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Button ID=&amp;quot;cmdSet&amp;quot; runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;cmdSet_Click&amp;quot; Text=&amp;quot;Set Profile Data&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Label ID=&amp;quot;lbl&amp;quot; runat=&amp;quot;server&amp;quot; EnableViewState=&amp;quot;False&amp;quot;&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File: Default.aspx.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Configuration;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Web;&lt;br /&gt;
using System.Web.Security;&lt;br /&gt;
using System.Web.UI;&lt;br /&gt;
using System.Web.UI.WebControls;&lt;br /&gt;
using System.Web.UI.WebControls.WebParts;&lt;br /&gt;
using System.Web.UI.HtmlControls;&lt;br /&gt;
public partial class SimpleTypes : System.Web.UI.Page&lt;br /&gt;
{&lt;br /&gt;
    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
    Calendar1.SelectedDate = DateTime.Now;&lt;br /&gt;
    }&lt;br /&gt;
  protected void cmdShow_Click(object sender, EventArgs e)&lt;br /&gt;
  {&lt;br /&gt;
    lbl.Text = &amp;quot;First Name: &amp;quot; + Profile.FirstName + &amp;quot;&amp;lt;br /&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;Last Name: &amp;quot; + Profile.LastName + &amp;quot;&amp;lt;br /&amp;gt;&amp;quot; +&lt;br /&gt;
      &amp;quot;Date of Birth: &amp;quot; + Profile.DateOfBirth.ToString(&amp;quot;D&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  protected void cmdSet_Click(object sender, EventArgs e)&lt;br /&gt;
  {&lt;br /&gt;
    Profile.FirstName = txtFirst.Text;&lt;br /&gt;
    Profile.LastName = txtLast.Text;&lt;br /&gt;
    Profile.DateOfBirth = Calendar1.SelectedDate;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
File: Web.config&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;system.web&amp;gt;&lt;br /&gt;
    &amp;lt;profile&amp;gt;&lt;br /&gt;
      &amp;lt;properties&amp;gt;&lt;br /&gt;
        &amp;lt;add name=&amp;quot;FirstName&amp;quot; type=&amp;quot;String&amp;quot; serializeAs=&amp;quot;Binary&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;add name=&amp;quot;LastName&amp;quot; type=&amp;quot;String&amp;quot; serializeAs=&amp;quot;Xml&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;add name=&amp;quot;DateOfBirth&amp;quot; type=&amp;quot;DateTime&amp;quot; serializeAs=&amp;quot;String&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/properties&amp;gt;&lt;br /&gt;
    &amp;lt;/profile&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Get / set user-defined object to profile==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; CodeFile=&amp;quot;Default.aspx.cs&amp;quot; Inherits=&amp;quot;ComplexTypes&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;table&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td style=&amp;quot;width: 99px&amp;quot;&amp;gt;&lt;br /&gt;
                    Name:&amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;asp:TextBox ID=&amp;quot;txtName&amp;quot; runat=&amp;quot;server&amp;quot; &amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td style=&amp;quot;width: 99px&amp;quot;&amp;gt;&lt;br /&gt;
                    Street:&amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;asp:TextBox ID=&amp;quot;txtStreet&amp;quot; runat=&amp;quot;server&amp;quot; &amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td style=&amp;quot;width: 99px&amp;quot;&amp;gt;&lt;br /&gt;
                    City:&amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;asp:TextBox ID=&amp;quot;txtCity&amp;quot; runat=&amp;quot;server&amp;quot; &amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td style=&amp;quot;width: 99px&amp;quot;&amp;gt;&lt;br /&gt;
                    Zip Code:&amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;asp:TextBox ID=&amp;quot;txtZip&amp;quot; runat=&amp;quot;server&amp;quot; &amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td style=&amp;quot;width: 99px&amp;quot;&amp;gt;&lt;br /&gt;
                    State:&amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;asp:TextBox ID=&amp;quot;txtState&amp;quot; runat=&amp;quot;server&amp;quot; &amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
                &amp;lt;td style=&amp;quot;width: 99px&amp;quot;&amp;gt;&lt;br /&gt;
                    Country:&amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                    &amp;lt;asp:TextBox ID=&amp;quot;txtCountry&amp;quot; runat=&amp;quot;server&amp;quot; &amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;br /&amp;gt;&lt;br /&gt;
        &amp;lt;asp:Button ID=&amp;quot;cmdGet&amp;quot; runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;cmdGet_Click&amp;quot; Text=&amp;quot;Get&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;asp:Button ID=&amp;quot;cmdSave&amp;quot; runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;cmdSave_Click&amp;quot; Text=&amp;quot;Save&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Default.aspx.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Configuration;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Web;&lt;br /&gt;
using System.Web.Security;&lt;br /&gt;
using System.Web.UI;&lt;br /&gt;
using System.Web.UI.WebControls;&lt;br /&gt;
using System.Web.UI.WebControls.WebParts;&lt;br /&gt;
using System.Web.UI.HtmlControls;&lt;br /&gt;
public partial class ComplexTypes : System.Web.UI.Page&lt;br /&gt;
{&lt;br /&gt;
    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
    if (!Page.IsPostBack)&lt;br /&gt;
      LoadProfile();&lt;br /&gt;
    }&lt;br /&gt;
  protected void cmdSave_Click(object sender, EventArgs e)&lt;br /&gt;
  {&lt;br /&gt;
    Profile.Address = new Address(txtName.Text, txtStreet.Text, txtCity.Text, txtZip.Text, txtState.Text, txtCountry.Text);&lt;br /&gt;
  }&lt;br /&gt;
  protected void cmdGet_Click(object sender, EventArgs e)&lt;br /&gt;
  {&lt;br /&gt;
    LoadProfile();&lt;br /&gt;
  }&lt;br /&gt;
  private void LoadProfile()&lt;br /&gt;
  {&lt;br /&gt;
    txtName.Text = Profile.Address.Name;&lt;br /&gt;
    txtStreet.Text = Profile.Address.Street;&lt;br /&gt;
    txtCity.Text = Profile.Address.City;&lt;br /&gt;
    txtZip.Text = Profile.Address.ZipCode;&lt;br /&gt;
    txtState.Text = Profile.Address.State;&lt;br /&gt;
    txtCountry.Text = Profile.Address.Country;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
[Serializable()]&lt;br /&gt;
 class Address&lt;br /&gt;
{&lt;br /&gt;
  private string name;&lt;br /&gt;
  public string Name&lt;br /&gt;
  {&lt;br /&gt;
    get { return name; }&lt;br /&gt;
    set { name = value; }&lt;br /&gt;
  }&lt;br /&gt;
  private string street;&lt;br /&gt;
  public string Street&lt;br /&gt;
  {&lt;br /&gt;
    get { return street; }&lt;br /&gt;
    set { street = value; }&lt;br /&gt;
  }&lt;br /&gt;
  private string city;&lt;br /&gt;
  public string City&lt;br /&gt;
  {&lt;br /&gt;
    get { return city; }&lt;br /&gt;
    set { city = value; }&lt;br /&gt;
  }&lt;br /&gt;
  private string zipCode;&lt;br /&gt;
  public string ZipCode&lt;br /&gt;
  {&lt;br /&gt;
    get { return zipCode; }&lt;br /&gt;
    set { zipCode = value; }&lt;br /&gt;
  }&lt;br /&gt;
  private string state;&lt;br /&gt;
  public string State&lt;br /&gt;
  {&lt;br /&gt;
    get { return state; }&lt;br /&gt;
    set { state = value; }&lt;br /&gt;
  }&lt;br /&gt;
  private string country;&lt;br /&gt;
  public string Country&lt;br /&gt;
  {&lt;br /&gt;
    get { return country; }&lt;br /&gt;
    set { country = value; }&lt;br /&gt;
  }&lt;br /&gt;
  public Address(string name, string street, string city,&lt;br /&gt;
    string zipCode, string state, string country)&lt;br /&gt;
  {&lt;br /&gt;
    Name = name;&lt;br /&gt;
    Street = street;&lt;br /&gt;
    City = city;&lt;br /&gt;
    ZipCode = zipCode;&lt;br /&gt;
    State = state;&lt;br /&gt;
    Country = country;&lt;br /&gt;
  }&lt;br /&gt;
  public Address() { }&lt;br /&gt;
}&lt;br /&gt;
File: Web.config&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;system.web&amp;gt;&lt;br /&gt;
    &amp;lt;profile&amp;gt;&lt;br /&gt;
      &amp;lt;properties&amp;gt;&lt;br /&gt;
        &amp;lt;add name=&amp;quot;address&amp;quot; type=&amp;quot;Address&amp;quot; serializeAs=&amp;quot;Binary&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/properties&amp;gt;&lt;br /&gt;
    &amp;lt;/profile&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Inheriting a Profile from a Custom Class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
File: App_Code\SiteProfile.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Web.Profile;&lt;br /&gt;
public class SiteProfile : ProfileBase&lt;br /&gt;
{&lt;br /&gt;
    private string _firstName = &amp;quot;Your First Name&amp;quot;;&lt;br /&gt;
    private string _lastName = &amp;quot;Your Last Name&amp;quot;;&lt;br /&gt;
    [SettingsAllowAnonymous(true)]&lt;br /&gt;
    public string FirstName&lt;br /&gt;
    {&lt;br /&gt;
        get { return _firstName; }&lt;br /&gt;
        set { _firstName = value; }&lt;br /&gt;
    }&lt;br /&gt;
    [SettingsAllowAnonymous(true)]&lt;br /&gt;
    public string LastName&lt;br /&gt;
    {&lt;br /&gt;
        get { return _lastName; }&lt;br /&gt;
        set { _lastName = value; }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
File: Web.Config&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
&amp;lt;system.web&amp;gt;&lt;br /&gt;
  &amp;lt;anonymousIdentification enabled=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;profile inherits=&amp;quot;SiteProfile&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Making Personalization Properties Read-Only==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;system.web&amp;gt;&lt;br /&gt;
     &amp;lt;profile&amp;gt;&lt;br /&gt;
        &amp;lt;properties&amp;gt;&lt;br /&gt;
            &amp;lt;add name=&amp;quot;StartDate&amp;quot; type=&amp;quot;System.DateTime&amp;quot; readOnly=&amp;quot;True&amp;quot; /&amp;gt;           &lt;br /&gt;
        &amp;lt;/properties&amp;gt;&lt;br /&gt;
    &amp;lt;/profile&amp;gt;&lt;br /&gt;
    &amp;lt;authentication mode=&amp;quot;Windows&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Using Profiles==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
The ASP.NET Framework provides an alternative to using cookies or Session state to store user information: the Profile object. &lt;br /&gt;
The Profile object provides you with a strongly typed, persistent form of session state.&lt;br /&gt;
You create a Profile by defining a list of Profile properties in your application root web configuration file. &lt;br /&gt;
The ASP.NET Framework dynamically compiles a class that contains these properties in the background.&lt;br /&gt;
The following web configuration file defines a Profile that contains three properties: firstName, lastName, and numberOfVisits.&lt;br /&gt;
File: Web.Config&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
&amp;lt;system.web&amp;gt;&lt;br /&gt;
  &amp;lt;profile&amp;gt;&lt;br /&gt;
    &amp;lt;properties&amp;gt;&lt;br /&gt;
      &amp;lt;add name=&amp;quot;firstName&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;add name=&amp;quot;lastName&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;add name=&amp;quot;numberOfVisits&amp;quot; type=&amp;quot;Int32&amp;quot; defaultValue=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;add name=&amp;quot;xmlLastName&amp;quot; type=&amp;quot;String&amp;quot; serializeAs=&amp;quot;Xml&amp;quot;/&amp;gt;      &lt;br /&gt;
    &amp;lt;/properties&amp;gt;&lt;br /&gt;
  &amp;lt;/profile&amp;gt;&lt;br /&gt;
&amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you define a Profile property, you can use any of the following attributes:&lt;br /&gt;
name sets the name of the property.&lt;br /&gt;
type sets the type of the property. &lt;br /&gt;
The type can be any custom type, including a custom component that you define in the App_Code folder.&lt;br /&gt;
The default type is string.&lt;br /&gt;
defaultValue is a default value for the property.&lt;br /&gt;
readOnly creates a read-only property. &lt;br /&gt;
The default value is false.&lt;br /&gt;
serializeAs sets how a property is persisted into a static representation. &lt;br /&gt;
Possible values are Binary, ProviderSpecific, String, and Xml. &lt;br /&gt;
The default value is ProviderSpecific.&lt;br /&gt;
allowAnonymous allows anonymous users to read and set the property. &lt;br /&gt;
The default value is false.&lt;br /&gt;
provider associates the property with a particular Profile provider.&lt;br /&gt;
customProviderData passes custom data to a Profile provider.&lt;br /&gt;
File: ShowProfile.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    void Page_PreRender()&lt;br /&gt;
    {&lt;br /&gt;
        lblFirstname.Text = Profile.firstName;&lt;br /&gt;
        lblLastName.Text = Profile.lastName;&lt;br /&gt;
        Profile.numberOfVisits++;&lt;br /&gt;
        lblNumberOfVisits.Text = Profile.numberOfVisits.ToString();&lt;br /&gt;
    }&lt;br /&gt;
    protected void btnUpdate_Click(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        Profile.firstName = txtNewFirstName.Text;&lt;br /&gt;
        Profile.lastName = txtNewLastName.Text;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Show Profile&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    First Name:&lt;br /&gt;
    &amp;lt;asp:Label&lt;br /&gt;
        id=&amp;quot;lblFirstname&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
    Last Name:&lt;br /&gt;
    &amp;lt;asp:Label&lt;br /&gt;
        id=&amp;quot;lblLastName&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
    Number of Visits:&lt;br /&gt;
    &amp;lt;asp:Label&lt;br /&gt;
        id=&amp;quot;lblNumberOfVisits&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Label&lt;br /&gt;
        id=&amp;quot;lblNewFirstName&amp;quot;&lt;br /&gt;
        Text=&amp;quot;New First Name:&amp;quot;&lt;br /&gt;
        AssociatedControlID=&amp;quot;txtNewFirstName&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:TextBox&lt;br /&gt;
        id=&amp;quot;txtNewFirstName&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Label&lt;br /&gt;
        id=&amp;quot;lblNewLastName&amp;quot;&lt;br /&gt;
        Text=&amp;quot;New Last Name:&amp;quot;&lt;br /&gt;
        AssociatedControlID=&amp;quot;txtNewLastName&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:TextBox&lt;br /&gt;
        id=&amp;quot;txtNewLastName&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Button&lt;br /&gt;
        id=&amp;quot;btnUpdate&amp;quot;&lt;br /&gt;
        Text=&amp;quot;Update Profile&amp;quot;&lt;br /&gt;
        OnClick=&amp;quot;btnUpdate_Click&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Working with the automaticSaveEnabled attribute==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;system.web&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;profile automaticSaveEnabled=&amp;quot;False&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
       &amp;lt;properties&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
          &amp;lt;add name=&amp;quot;FirstName&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;add name=&amp;quot;LastName&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;add name=&amp;quot;LastVisited&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;add name=&amp;quot;Age&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;add name=&amp;quot;Member&amp;quot; /&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
       &amp;lt;/properties&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
    &amp;lt;/profile&amp;gt;&lt;br /&gt;
    &amp;lt;authentication mode=&amp;quot;Windows&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>