ASP.NET - شخصی سازی

وب سایت ها برای بازدید مکرر کاربران طراحی شده اند. شخصی سازی به سایت اجازه می دهد تا هویت کاربر و سایر جزئیات اطلاعات را به خاطر بسپارد و یک محیط فردی را برای هر کاربر ارائه می دهد.ASP.NET خدماتی را برای شخصی سازی وب سایت متناسب با سلیقه و ترجیح مشتری ارائه می دهد.درک نمایه هاسرویس شخصی سازی ASP.NET بر اساس مشخصات کاربر است. نمایه کاربر نوع اطلاعات مورد نیاز سایت را در مورد کاربر تعریف می کند. به عنوان مثال، نام، سن، آدرس، تاریخ تولد و شماره تلفن.این اطلاعات در فایل web.config برنامه تعریف شده و زمان اجرا ASP.NET آن را خوانده و استفاده می کند. این کار توسط ارائه دهندگان شخصی سازی انجام می شود.پروفایل های کاربر به دست آمده از داده های کاربر در یک پایگاه داده پیش فرض ایجاد شده توسط ASP.NET ذخیره می شود. شما می توانید پایگاه داده خود را برای ذخیره پروفایل ایجاد کنید. تعریف داده های پروفایل در فایل پیکربندی web.config ذخیره می شود.مثالاجازه دهید یک سایت نمونه ایجاد کنیم، جایی که می خواهیم برنامه ما جزئیات کاربر مانند نام، آدرس، تاریخ تولد و غیره را به خاطر بسپارد. جزئیات نمایه را در فایل web.config در عنصر <system.web> اضافه کنید.<configuration><system.web><profile> <properties> <add name="Name" type ="String"/> <add name="Birthday" type ="System.DateTime"/> <group name="Address"> <add name="Street"/> <add name="City"/> <add name="State"/> <add name="Zipcode"/> </group> </properties></profile></system.web></configuration>هنگامی که نمایه در فایل web.config تعریف می شود، نمایه می تواند از طریق ویژگی Profile موجود در HttpContext فعلی و همچنین در دسترس از طریق صفحه استفاده شود.کادرهای متنی را اضافه کنید تا ورودی کاربر را همانطور که در نمایه تعریف شده است دریافت کنید و یک دکمه برای ارسال داده اضافه کنید:برای نمایش اطلاعات نمایه، Page_load را به روز کنید:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { ProfileCommon pc=this.Profile.GetProfile(Profile.UserName); if (pc != null) { this.txtname.Text = pc.Name; this.txtaddr.Text = pc.Address.Street; this.txtcity.Text = pc.Address.City; this.txtstate.Text = pc.Address.State; this.txtzip.Text = pc.Address.Zipcode; this.Calendar1.SelectedDate = pc.Birthday; } } }}برای ذخیره اطلاعات کاربر در نمایه، کنترل کننده زیر را برای دکمه ارسال بنویسید:protected void btnsubmit_Click(object sender, EventArgs e){ ProfileCommon pc=this.Profile.GetProfile(Profile.UserName); if (pc != null) { pc.Name = this.txtname.Text; pc.Address.Street = this.txtaddr.Text; pc.Address.City = this.txtcity.Text; pc.Address.State = this.txtstate.Text; pc.Address.Zipcode = this.txtzip.Text; pc.Birthday = this.Calendar1.SelectedDate; pc.Save(); }}هنگامی که صفحه برای اولین بار اجرا می شود، کاربر باید اطلاعات را وارد کند. با این حال، دفعه بعد جزئیات کاربر به طور خودکار بارگیری می شود.ویژگی های عنصر <add>به غیر از ویژگی های name و type که استفاده کرده ایم، ویژگی های دیگری برای عنصر <add> وجود دارد. جدول زیر برخی از این ویژگی ها را نشان می دهد:توضیحات ویژگی هانام نام ملک.نوع به طور پیش‌فرض نوع رشته‌ای است اما هر نام کلاس کاملاً واجد شرایط را به عنوان نوع داده مجاز می‌کند.serializeAs قالبی که هنگام سریال سازی این مقدار استفاده می شود.readOnly مقدار پروفایل فقط خواندنی را نمی توان تغییر داد، به طور پیش فرض این ویژگی نادرست است.defaultValue یک مقدار پیش فرض است که اگر نمایه وجود نداشته باشد یا اطلاعاتی نداشته باشد استفاده می شود.allowAnonymous یک مقدار بولی که نشان می دهد آیا می توان از این ویژگی با پروفایل های ناشناس استفاده کرد یا خیر.ارائه‌دهنده ارائه‌دهنده پروفایل‌هایی که باید برای مدیریت این ویژگی استفاده شود.شخصی سازی ناشناسشخصی سازی ناشناس به کاربر این امکان را می دهد که قبل از شناسایی خود سایت را شخصی سازی کند. به عنوان مثال، Amazon.com به کاربر اجازه می دهد تا قبل از ورود به سبد خرید، مواردی را به سبد خرید اضافه کند. برای فعال کردن این ویژگی، فایل web.config را می توان به صورت زیر پیکربندی کرد:<anonymousIdentification enabled ="true" cookieName=".ASPXANONYMOUSUSER" cookieTimeout="120000" cookiePath="/" cookieRequiresSSL="false" cookieSlidingExpiration="true" cookieprotection="Encryption" coolieless="UseDeviceProfile"/>