ASP.NET2.0學習7--個人化使用者配置

來源:互聯網
上載者:User
asp.net

個人化使用者配置

一、簡介

為使用者提供自訂的外觀、內容、布局,當使用者再次訪問的時候,使用者還能看到自己原來的設定。

二、個人化的三大步驟

1.  識別使用者身份

要建立驗證使用者身份的機制

建立識別使用者需求的機制

建立系統管理使用者的機制

2.  提供個人化服務

針對註冊和匿名使用者提供不同的服務

3.  存貯使用者資訊

可以儲存使用者的相關資訊,以方便下次使用,包括使用者的登陸資訊

三、實現個人化服務的三大功能

1.  個人化使用者配置

2.  WEB組件

3.  成員和角色管理

四、為匿名使用者進行個人化

web.config配置

    <anonymousIdentification enabled="true"/>

    <profile>

      <properties>

        <add name="Name" allowAnonymous="true" />

        <add name="LastSubmit" type="System.DateTime" allowAnonymous="true"/>

        <group name="Address">

          <add name="City"  allowAnonymous="true"/>

          <add name="PostalCode"  allowAnonymous="true"/>

        </group>

      </properties>

</profile>

代碼:

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

            //顯示使用者配置資訊

            DisplayProfileInfo();

        }

    }

    protected void btnSubmit_Click(object sender, EventArgs e)

    {

        //儲存使用者配置資訊到Profile屬性中

        Profile.Name = txtName.Text;

        Profile.Address.City = txtCity.Text;

        Profile.Address.PostalCode = txtPostalCode.Text;

        Profile.LastSubmit = DateTime.Now;

        //顯示使用者配置資訊

        DisplayProfileInfo();

    }

    private void DisplayProfileInfo()

    {

        //從Profile屬性中擷取資料並賦值給伺服器控制項           

        txtName.Text = Profile.Name;

        txtCity.Text = Profile.Address.City;

        txtPostalCode.Text = Profile.Address.PostalCode;

        DateTime time = Profile.LastSubmit;

        //如果未擷取值則顯示空,否則顯示擷取的值

        if (time.Year == 1)

        {

            labLastSubmit.Text = "空";

        }

        else

        {

            labLastSubmit.Text = time.ToString();

        }

    }

五、為註冊使用者實現個人化使用者配置

web.config配置

    <connectionStrings>

        <add name="NorthwindConnectionString" connectionString="Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True"

            providerName="System.Data.SqlClient" />

    </connectionStrings>

    <system.web>        

          <profile>

              <properties>

                   <add name="ShoppingCart" type="ShoppingCart" serializeAs="Binary"/>

              </properties>           

          </profile>

          <authorization>

              <deny users="?"/>

          </authorization>

          <authentication mode="Forms">

              <forms loginUrl ="Login.aspx"></forms>

          </authentication>

程式碼範例:code 13-2

六、匿名使用者轉化為註冊使用者的處理

Global.asax中的設定

    void Profile_MigrateAnonymous(Object sender, ProfileMigrateEventArgs pe)

    {

        //擷取匿名使用者的Profile對象

        ProfileCommon anonProfile = Profile.GetProfile(pe.AnonymousID);

        //如果總價為不為0(說明匿名使用者進行了選擇),則將匿名使用者的Profile儲存起來

        if (anonProfile.ShoppingCart.Total  != 0)

        {           

            Profile.ShoppingCart = anonProfile.ShoppingCart;           

        }       

        //刪除匿名使用者的使用者資料(從aspnet_Users表)

        Membership.DeleteUser(pe.AnonymousID);

        //刪除匿名使用者的Profle資料(從aspnet_Profile表)

        ProfileManager.DeleteProfile(pe.AnonymousID);

        //刪除匿名使用者標識

        AnonymousIdentificationModule.ClearAnonymousIdentifier();       

}

       範例程式碼:code 13-3

七、刪除個人化資訊

刪除匿名使用者的個人化資訊

ProfileManager.DeleteProfile(Context.Request.AnonymousID)

刪除註冊使用者的個人化資訊

ProfileManager.DeleteProfile(User.Identity.Name)



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.