راهکارهای موثر در ASP.Net

 راهکار 4 - 5 : نگهداری اطلاعات کاربران در سایت ها بوسیله امکان Profile properties

مقدمه :

بوسیله امکان خواص پروفایل ها یا ( Profile properties ) در Asp.Net، می توانید اطلاعات خاص کاربران خود را دریافت کرده و در صورت نیاز آنها را ذخیره کنید . برای مثال کاربران می توانند یک کد پستی یا یک رنگ مورد علاقه خود برای استفاده در تم سایت را تعیین کرده ، سپس برنامه آنها را ذخیره می کند . بعد از آن ، هرجا که نیاز باشد ، برنامه اطلاعات را برای استفاده آن کاربر فراخوانی می کند . Asp.Net بصورت خودکار می تواند کاربری که به سایت داده شده ( چه عضو باشد،چه نباشد ) را شناسایی کرده ( بر حسب کوکی ها ) و سپس اطلاعات مربوط به آن کاربر را خوانده و در اختیار برنامه قرار دهد .
این راهکار به شما آموزش می دهد چگونه اطلاعات خاص مورد نظر خود را از کاربر دریافت کرده و ذخیره و سپس استفاده نمایید . مباحث مطرح شده در این راهکار عبارتند از :

  • تنظیم برنامه یا سایت خودتان برای استفاده از امکان Profile properties .
  • تعیین و دریافت یک یا چند اطلاعات از کاربر و ذخیره آن .
  • دریافت اطلاعت ذخیره شده از هر کاربر و سپس بازخوانی امکان اطلاعات در هنگام لازم.

برای حمایت از این پروژه ، کتاب راهکارهای موثر در ASP.Net را دانلود نمایید ...

پیش نیازها :

قبل از اجرای راهکار بایستی برنامه ها و امکانات زیر بر روی سیستم شما فعال باشند :

  1. Microsoft Visual Studio .
  2. SQL Server Express که بر روی کامپیوتر شما نصب شده باشد . این برنامه معمولا با ویژوال استودیو نصب می شود .
  3. فعال بودن کوکی ها بر روی مروگر شما .

مرحله اول - طراحی یک سایت ASP.Net :

در مرحله اول از راهکار بایستی یک سایت ASP.Net را برای اجرای پروژه خود ایجاد نمایید . فرض بر این است که سایت را قبلا ایجاد کرده و یا با نحوه اجرای آن آشنایی دارید ، در غیر اینصورت به راهکار شماره 1-1 : نحوه ایجاد یک وب سایت ASP.Net در ویژوال استودیو بروید .

مرحله دوم - تنظیم امکان Profile properties در سایت :

در مرحله اول امکان Profile properties را در سایت خود فعال می کنیم . سپس اولین خاصیتی که برای هر کاربر می خواهید ثبت کنید را تعیین می نماییم . این خاصیت ، کد پستی یا Postal Code بوده و برای هر دو نوع کاربر عضو و غیر عضو ثبت می شود .

نحوه تنظیم وب سایت برای دریافت خاصیت کد پستی Postal Code :

  1. در منوی Solution Explorer ، دقت نمایید که آیا وب سایت شما دارای فایل تنظیمات سایت یا Web.config است یا خیر . در غیر اینصورت مراحل زیر را انجام دهید :
    • بر روی نام وب سایت خود کلیک راست نموده و گزینه Add New Item را انتخاب نمایید
    • سپس از پنجره باز شده ، یک فایل Web Configuration File را انتخاب کرده و به سایت اضافه نمایید . مطابق تصویر زیر :
    • فایل جدید با نام Web.config به سایت اضافه می شود . نام آن را به هیچ عنوان تغییر ندهید .
  2. فایل Web.config را باز کرده و المنت Profile را به عنوان یک عنصر فرزند به المنت System.Web به فایل Web.config اضافه نمایید . به صورت زیر :

    کد <system.web>

       <anonymousIdentification enabled="true" />
          <profile>
             <properties>
                <add name="PostalCode"
                   type="System.String"
                   allowAnonymous="true" />
             </properties>
          </profile>

    </system.web>

نکته : تمامی کدها و المنت های موجود در فایل Web.Config به بزرگ یا کوچک بودن حروف حساس هستند . به این مسئله دقت نمایید . اما تشریح کدی که به فایل Web.Config اضافه نمودیم :
در خط اول المنت anonymousIdentification ، را به فایل اضافه نمودیم که مقدار آن بر روی "true" تنظیم شده است . این خاصیت تعیین می کند که اطلاعات برای هر دو دسته کاربران عضو و غیر عضو ثبت می شود . در حالت پیش فرض ، این اطلاعات برای کاربران غیر عضو یا anonymous users ثبت نمی شود .

  • المنت Properties ، کلید خواصی که می خواهید برای کاربران ثبت شود را در خود تعریف می کند .
  • بوسیله المنت add ، اولین خاصیتی که می خواهیم برای هر کاربر ذخیره و ثبت کنیم را تعیین کرده ایم . تمام این خاصیت Postal Code ، نوع آن از نوع متن System.String بوده و برای کاربران غیر عضو نیز ثبت می شود .

برای هر خاصیتی که می خواهید برای ثبت اطلاعات کاربران به کار ببرید ، باید یک المنت add را بصورت تشریح شده ، در کد اضافه نمایید .
نکته مهم : بصورت پیش فرض ، اطلاعات Profile کاربران در سایت های Asp.Net در یک پایگاه داده SQL Server در پوشه App_Data سایت نگهداری می شود . این راهکار نیز از همین فایل استفاده می کند . اما در سایت های بزرگ Asp.Net که از حجم بالای کارران برخوردارند ، استفاده از یک فایل داده تحت سرور از فایل ساده SQL Server بهتر است .

مرحله سوم - تنظیم و دریافت خاصیت کد پستی Postal Code :

در این بخش از راهکار ، صفحه ای طراحی می کنیم که نحوه دریافت و ثبت خاصیت کد پستی Postal Code را که در مرحله قبل تعریف نمودیم ، نشان می دهد . برای این منظور مراحل زیر را انجام دهید :

  1. یک صفحه جدید با نام Profiles.aspx را به وب سایت خود اضافه نموده و مطمئین شوید که کادر Place Code in Seprate File برای ایجاد یک فایل مجزا جهت کدنویسی ، علامت خورده باشد .
  2. صفحه Profile.aspx را باز کرده و به نمای Design بروید .
  3. از منوی Toolbox برنامه ویژوال استودیو و بخش کنترل های Standard ، کنترل های زیر با خواص تعیین شده را به صفحه اضافه نمایید :

    Property settings

    Control

    ID = PostalCodeTextBox

    TextBox

    ID = SetPostalCodeButton

    Text = Set Postal Code

    Button

    ID = PostalCodeLabel

    Text = خالی

    Label

  4. بر روی کنترل دکمه فرمان Postal Code ، دابل کلیک نمایید تا تابع رویداد کلیک آن باز شده و کد لازم برای اجرا در زمان کلیک بر روی آن را بصورت زیر اضافه نمایید :

    VB کد Protected Sub SetPostalCode_Click(ByVal sender As Object, ByVal e As System.EventArgs)
       Profile.PostalCode = Server.HtmlEncode(PostalCodeTextBox.Text)
       PostalCodeLabel.Text = Profile.PostalCode
    End Sub
    C# کد protected void SetPostalCode_Click(object sender, System.EventArgs e)
       {
          Profile.PostalCode = Server.HtmlEncode(PostalCodeTextBox.Text);
          PostalCodeLabel.Text = Profile.PostalCode;
     
      }

  5. نکته : هنگامی که خواص Profile را برای وب سایت Asp.Net فعال می کنید Asp.Net بصورت اتوماتیک یک خاصیت به نام Profile ایجاد می کند که سایر خواص درون آن قرار بگیرند . برای مثال خاصیت PostalCode بصورت Profile.PostalCode قابل دسترسی است .
  6. کد زیر را به رویداد لود صفحه یا Page_Load اضافه نمایید تا به محض اجرای صفحه ، مقدار خاصیت ذخیره شده PostalCode را خوانده و نمایش دهد :

    VB کد Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        PostalCodeLabel.Text = Profile.PostalCode
    End Sub
    C# کد void Page_Load(object sender, System.EventArgs e)
      {
           PostalCodeLabel.Text = Profile.PostalCode;
      
    }

نحوه امتحان کردن کارکرد خاصیت Postal Code در صفحه :

اکنون در نظر داریم تا نحوه عملکرد خاصیت PostalCode که در مراحل قبل تعریف نمودیم را امتحان کنیم . در این مرحله بصورت یک کاربر غیر عضو ( anonymous user ) به سایت وارد می شویم . به محض ورود به سایت ، Asp.Net یک شناسه منحصر به فرد یا ID به کاربر اختصاصی می دهد که از آن برای نگهداری و دریافت و ذخیره خواص Profile استفاده می کند . این ID بصورت یک کوکی بر روی کامپیوتر کاربر ذخیره می شود و برای شما منحصر به فرد است . برای تست خاصیت PostalCode مراحل زیر را انجام دهید :

  1. در منوی Solution Explorer بر روی نام صفحه Profile.aspx کلیک راست کرده و با انتخاب گزینه Set as Start Page ، آن را به عنوان صفحه آغازین وب سایت تعیین نمایید .
  2. با زدن کلیدهای Ctrl+F5 صفحه Profile.aspx را اجرا نمایید .
    نکته : زمانی که برای اولین بار پروژه یا وب سایت خود را اجرا می کنید ، ممکن است این کار مدت زمانی بیش از حد معمول طول بکشد ، زیرا برنامه بایستی پایگاه داده SQL پروژه را ساخته و بقیه پروژه را کامپایل نماید .
  3. در کادر متنی که به منظور وارد کردن کد پستی بر روی صفحه قرار داده ایم ، کدپستی خود را وارد نموده و سپس برای ثبت ، آن بر روی دکمه فرمان Set Postal Code کلیک نمایید . کدپستی وارد شده همزمان در کنترل Lable نیز نمایش داه می شود .
  4. صفحه جاری مرورگر را ببندید تا Session جاری از بین برود .
  5. مجددا با زدن کلیدهای Ctrl+F5 صفحه Profile.aspx را اجرا نمایید . مشاهده خواهید کرد که کدپستی که در مرحله قبل وارد نمودید ، به محض اجرای صفحه در کنترل Lable نمایش داده می شود . در واقع صفحه این خاصیت را از کوکی ذخیره شده بر روی مرورگر استخراج می کند .
  6. نکته مهم : اگر کمی دقت نمایید ، متوجه خواهید شد که برنامه به صورت اتوماتیک پایگاه داده ای به نام ASPNETDB.MDF را در پوشه App_Data ، برای نگهداری اطلاعات خواص کاربران در سایت ایجاد کرده است .

مرحله چهارم - تعیین خواص چندتایی ( آرایه ای ) در Profile :

در مرحله قبل این راهکار ، ما یک خاصیت ساده با نام PostalCode که از نوع متن ( String ) بود را ایجاد و استفاده کردیم . در این مرحله خاصیت دیگری را خواهیم ساخت به نام FavoriteURLs که یک خاصیت مجموعه ای ( آرایه ای ) است . امکان خواص Profile در Asp.Net ، هر نوع متغیری را می تواند در خود نگهداری نماید ، فقط شما بایستی اطلاعات لازم را برای آن تعیین کنید .

نحوه تعریف خاصیت Favorite URLs :

  1. فایل Web.Config را باز کنید .
  2. یک المنت جدید add را برای ایجاد خاصیت به نام " FavoriteURLs " به المنت Profile همانند خاصیت مرحله قبل اضافه نمایید . همانطور که متوجه شدید در کد زیر یک خاصیت جدید به نام " FavoriteURLs " را که از نوع مجموعه ای متن یا " System.Collections.Specialized.StringCollection " است را  ایجاد نموده و برای هر نوع کاربر چه عضو و چه غیر عضو ثبت و ذخیره می شود . این خاصیت یک آرایه بوده و می تواند چندین مقدار را نگهداری نماید .
    بخش آبی رنگ را به فایل Web.Config اضافه نمایید :
    کد <system.web>

       <anonymousIdentification enabled="true" />
          <profile>
             <properties>
                <add name="PostalCode"
                   type="System.String"
                   allowAnonymous="true" />
                <add name="FavoriteURLs"
                  type="System.Collections.Specialized.StringCollection"
                  allowAnonymous="true" />

             </properties>
          </profile> 
     

    </system.web>
  3. فایل Web.Config را بسته و ذخیره نمایید .

نحوه دریافت و ذخیره خاصیت FavoriteURLs در صفحه :

نحوه کار با خاصیت FavoriteURLs که یک مجموعه است بسیار شبیه کار با سایر متغیرهای آرایه ای متنی است . در این مرحله از راهکار با افزودن یک کنترل TextBox دیگر که کاربر بایستی در آن URL های مورد نظر خود را وارد نمایید ، صفحه Profile.aspx را به روز رسانی می کنیم . هنگامی که کاربر URL را وارد نموده و بر روی دکمه فرمان Add کلیک نمایید ، آدرس جدید به مجموعه خواص FavoriteURLs اضافه می شود . سپس شما می توانید آدرس های وارد شده را در یک کنترل کادر کشویی  Drop_Down List  نمایش دهید . برای این منظور مراحل زیر را انجام دهید :

  1. در صفحه Profile.aspx ، کنترل های زیر را با خواص تعیین شده برای آنها اضافه نمایید :

    Property settings

    Control

    ID = FavoriteURLTextBox

    TextBox

    ID = AddURLButton

    Text = Add URL

    Button

    ID = FavoriteURLsListBox

    ListBox

  2. بر روی دکمه فرمان Add URL در نمای Design صفحه ، دابل کلیک نمایید تا رویداد کلیک آن برای نوشتن کد باز شود .
  3. در درون تابع رویداد کلیک دکمه فرمان Add URL کد زیر را برای ایجاد خاصیت مجموعه ای FavoriteURLs اضافه نمایید :
    VB کد Protected Sub AddURL_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim urlString As String = Server.HtmlEncode(FavoriteURLTextBox.Text)
        If Profile.FavoriteURLs Is Nothing Then
            Profile.FavoriteURLs = New System.Collections.Specialized.StringCollection
        End If
            Profile.FavoriteURLs.Add(urlString)
            DisplayFavoriteURLs( )
    End Sub
    C# کد protected void AddURL_Click(object sender, System.EventArgs e)
        {
            String urlString = Server.HtmlEncode(FavoriteURLTextBox.Text);
            if( Profile.FavoriteURLs == null )
                {
                    Profile.FavoriteURLs = new System.Collections.Specialized.StringCollection( );
                }
            Profile.FavoriteURLs.Add(urlString);
            DisplayFavoriteURLs( );
    }
  4. درون رویداد Page_Load صفحه نیز کد زیر را برای خواندن و بازیابی اطلاعات خاصیت FavoriteURLs و نمایش آن درون کنترل کادر کشویی اضافه نمایید :
    VB کد Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
       DisplayFavoriteURLs( )
    End Sub
    C# کد void Page_Load(object sender, System.EventArgs e)
       {
           DisplayFavoriteURLs( );
       }
  5. همچنین کد تابع اصلی زیر را نیز برای به روز رسانی آیتم های کنترل ListBox در بخش کد قرار دهید :

    VB کد Sub DisplayFavoriteURLs( )
       FavoriteURLsListBox.DataSource = Profile.FavoriteURLs
       FavoriteURLsListBox.DataBind( )
    End Sub
    C# کد void DisplayFavoriteURLs( )
     {
        FavoriteURLsListBox.DataSource = Profile.FavoriteURLs;
        FavoriteURLsListBox.DataBind( );
     }

نحوه تست کارکرد خاصیت Favorite URLs :

  1. با زدن دکمه های Ctrl+F5 صفحه را اجرا نمایید . در ابتدا مشاهده خواهید کرد که کنترل کشویی ListBox خالی است .
  2. یک آدرس URL مورد نظر خود را درون کادر متن مخصوص نوشته و سپس دکمه Add URL را بزنید . URL به خاصیت اضافه می شود . مجددا کادر فوق را برای اضافه کردن URL دومی به خاصیت ، انجام دهید .
  3. مرورگر را ببندید تا Session جاری صفحه منقضی شده و از بین برود .
  4. مجددا صفحه را با زدن دکمه های Ctrl+F5 اجرا نمایید . این بار مشاهده خواهید کرد که آدرس هایی که در مرحله قبل اضافه نموده اید ، در هنگام اجرای صفحه در کنترل ListBox نمایش داده می شوند .


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1