مدیریت وضعیت User Profile در ASP.NET

چهارشنبه 22 مهر 1394

در این پست می خواهیم در مورد مدیریت وضعیت پروفایل کاربر در ASP.NET صحبت کنیم. پروفایل کاربر (User Profile) یک مکانیسم مدیریت وضعیت می باشد. ویژگی User Profile اطلاعات مرتبط با یک کاربر منحصر بفرد می باشد و اطلاعات را در حالت مداوم نگهداری می کند.

مدیریت وضعیت User Profile در ASP.NET

پروفایل کاربر (User Profile) یک مکانیسم مدیریت وضعیت می باشد. ویژگی User Profile اطلاعات مرتبط با یک کاربر منحصر بفرد می باشد و اطلاعات را در حالت مداوم نگهداری می کند. User Profile اجازه مدیریت اطلاعات کاربر را بدون نیاز شما به ایجاد و نگهداری دیتابیس را می دهد. فرض کنید اگر یک کاربر یک آدرس را در حین خرید یک محصول وارد کند. در اینجا user profile تمام مقادیر آدرس را ذخیره می کند. و اگر همان کاربر با همان مرورگر را برای خرید محصول دوباره بازدید کند، نیازی به وارد کردن دوباره آدرس نمی باشد. آدرس از user profile پر می شود.

در اینجا تلاش می کنیم تا با کد این موضوع را شرح دهیم.

صفحه Aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UserProfile.aspx.cs" Inherits="UserProfile" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body dir="rtl">
    <form id="form1" runat="server">
   <div>
        سلام : &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
        <asp:Label ID="Label1" runat="server" Font-Bold="True" Text="Label"></asp:Label><br />
        آخرین تاریخ بازدید: &nbsp;
        <asp:Label ID="Label2" runat="server" Font-Bold="True" Text="Label"></asp:Label>
        <br />
       محل تولد :
        <asp:Label ID="Label3" runat="server" Font-Bold="True" Text=""></asp:Label></div>
       
        <br />
        <br />
        
        نام خود را وارد کنید: &nbsp;&nbsp;
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>&nbsp;
        محل تولد خود را وارد کنید 
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>&nbsp;
        <asp:Button ID="Button1" runat="server" Text="Save" OnClick="Button1_Click" />
    </form>

    <br/>

    <div><a href="http://www.barnamenevisan.org">مرجع تخصصی برنامه نویسان</a></div>
</body>
</html>

 

Aspx.cs

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;
using System.Drawing;


public partial class UserProfile : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack == false)
        {
            string name = Profile.Name;
            DateTime lastVisited = Profile.VisitedOn;
            string birthPlace;

            if (name == string.Empty)
            {
                //User has not specified his name
                Label1.Text = "مهمان";
            }
            else
            {
                //returning user, show his name
                Label1.Text = name;
            }

           
            if (lastVisited.ToString() == "1/1/0001 12:00:00 AM")
            {
                Label2.Text = "هرگز";
            }
            else
            {
                Label2.Text = lastVisited.ToString();
           }

            

        }

    }
    protected void Page_UnLoad(object sender, EventArgs e)
    {
        Profile.VisitedOn = DateTime.Now;
        
        Profile.Save();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Profile.Name = TextBox1.Text;
         Label1.Text = TextBox1.Text;
        Label3.Text = TextBox2.Text;  
        Profile.Save();
       
    }   
}

Web.config

<?xml version="1.0"?>  
<configuration>  
    <connectionStrings>  
        <add name="connectionFirst" connectionString="Data Source=.;Initial Catalog=DataBaseName;Integrated Security=True" providerName="System.Data.SqlClient"/>  
    </connectionStrings>  
    <system.web>  
        <compilation debug="true"/>  
        <authentication mode="Windows"/>  
        <anonymousIdentification enabled="true"/>  
        <profile>  
            <providers>  
                <add name="UserProfile" connectionStringName="connectionFirst" applicationName="/" type="System.Web.Profile.SqlProfileProvider"/>  
            </providers>  
            <properties>  
                <add name="Name" allowAnonymous="true"/>  
                <add name="VisitedOn" type="System.DateTime" allowAnonymous="true"/>  
            </properties>  
        </profile>  
    </system.web>  
</configuration

خروجی برنامه

بعد از پرکردن textbox ها

بعد از پرکردن textbox ها و زدن کلید Enter :

با بستن مرورگر و باز کدن مجدد آن نامی را که قبلا وارد کرده بودید، در محل نام کاربر نمایش داده می شود.

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

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

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید