Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

2 février 2014 7 02 /02 /février /2014 01:10

V –Personnalisation / Profil

 

Schéma (partiel) de la base ASPNETDB.MDF

  web4-copie-1

Web.config

<system.web>

   <profile enabled="true">

      < properties>

        < add name="Name" type="String"/>

        < add name="FirstName" type="String"/>

      </properties>

    </profile>

 

Accès au profil et sauvegarde Page EditProfile.aspx

protected void Page_Load(object sender, EventArgs e)

    {

        LoadProfile();

    }

    protected void btnSaveProfile_Click(object sender, EventArgs e)

    {

        SaveProfile();

    }

 

    public void LoadProfile()

    {   

        if (!this.IsPostBack)

        {

            string userName = Membership.GetUser().UserName;

            ProfileCommon profile = Profile.GetProfile(userName);

 

            txtName.Text = profile.Name;

            txtFirstName.Text = profile.FirstName;

        }

    }

 

    public void SaveProfile()

    {

        string userName = Membership.GetUser().UserName;

        ProfileCommon profile = Profile.GetProfile(userName);

 

        profile.Name = txtName.Text;

        profile.FirstName = txtFirstName.Text;

        profile.Save();

    }

 

Aller plus loin :

-          Créer des groupes

 

<system.web>

  <profile enabled="true">

      < properties>

        < add name="Name" type="String"/>

        < add name="FirstName" type="String"/>

        <group name="Address">

          <add name="Street" type="String"/>

          <add name="PostalCode" type="String"/>

          <add name="City" type="String"/>

          <add name="State" type="String"/>

          <add name="Country" type="String"/>

        </group>

      </properties>

    </profile>

 

Accès aux groupes, exemple :

txtCity.Text = profile.Address.City;

 

Permettre la sauvegarde de profil pour un utilisateur anonyme(panier par exemple)

Dans web.config

<system.web>

 <anonymousIdentification enabled="true" cookieless="AutoDetect"/>

    <profile enabled="true">

      < properties>

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

        < add name="FirstName" type="String" allowAnonymous="true"/>

      </properties>

    </profile>

 

Accèder

  protected void Page_Load(object sender, EventArgs e)

    {

        LoadProfile();

    }

    protected void btnSaveProfile_Click(object sender, EventArgs e)

    {

        SaveProfile();

 

       

    }

 

    public void LoadProfile()

    {   

        if (!this.IsPostBack)

        {

            if (!User.Identity.IsAuthenticated)

            {

                //ProfileCommon profile = (ProfileCommon)Context.Profile;   

 

                txtName.Text = this.Profile.Name;

                txtFirstName.Text = this.Profile.FirstName;

            }

            else

            {

                string userName = Membership.GetUser().UserName;

                ProfileCommon profile = Profile.GetProfile(userName);

 

                txtName.Text = profile.Name;

                txtFirstName.Text = profile.FirstName;

 

            }

                       

        }

    }

 

    public void SaveProfile()

    {

       

        if (!User.Identity.IsAuthenticated)

        {

            //ProfileCommon profile = (ProfileCommon)Context.Profile;

 

            this.Profile.Name = txtName.Text;

            this.Profile.FirstName = txtFirstName.Text;

 

        }

        else

        {

            string userName = Membership.GetUser().UserName;

            ProfileCommon profile = Profile.GetProfile(userName);

 

            profile.Name = txtName.Text;

            profile.FirstName = txtFirstName.Text;

            profile.Save();

 

        }

 

    }

 

 

 

 

Astuce : il est possible de « merger » le contenu du profil anonyme au profil une fois connecté

Dans Global.asax

  void Profile_MigrateAnonymous(object sender, ProfileMigrateEventArgs e)

    {

        ProfileCommon profile = this.Profile.GetProfile(e.AnonymousID);

 

        this.Profile.Name = profile.Name;

        this.Profile.FirstName = profile.FirstName;

     

        // delete anonymous profile

        ProfileManager.DeleteProfile(e.AnonymousID);

        AnonymousIdentificationModule.ClearAnonymousIdentifier();

 

    }

 

 

Partager cet article

Repost 0
Published by Romagny13 - dans ASP.NET
commenter cet article

commentaires