ASP.NET Tutorial/Profile/Anonymous Profiles

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Enable Anonymous Identification and defines a Profile property that can be modified by anonymous users.

   <source lang="csharp">

File: Web.Config <configuration> <system.web>

 <authentication mode="Forms" />
 <anonymousIdentification enabled="true" />
 <profile>
   <properties>
     <add
       name="numberOfVisits"
       type="Int32"
       defaultValue="0"
       allowAnonymous="true" />
   </properties>
 </profile>

</system.web> </configuration>

File: Default.aspx <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server">

   void Page_PreRender() {
       lblUserName.Text = Profile.UserName;
       lblIsAnonymous.Text = Profile.IsAnonymous.ToString();
       Profile.numberOfVisits++;
       lblNumberOfVisits.Text = Profile.numberOfVisits.ToString();
   }
   protected void btnLogin_Click(object sender, EventArgs e) {
      FormsAuthentication.SetAuthCookie("Bob", false);
      Response.Redirect(Request.Path);
   }
   protected void btnLogout_Click(object sender, EventArgs e)
   {
       FormsAuthentication.SignOut();
       Response.Redirect(Request.Path);
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>Show Anonymous Identification</title>

</head> <body>

   <form id="form1" runat="server">
   User Name:
   <asp:Label
       id="lblUserName"
       Runat="server" />
   
Is Anonymous: <asp:Label id="lblIsAnonymous" Runat="server" />
Number Of Visits: <asp:Label id="lblNumberOfVisits" Runat="server" />

   <asp:Button
       id="btnReload"
       Text="Reload"
       Runat="server" />
   <asp:Button
       id="btnLogin"
       Text="Login"
       OnClick="btnLogin_Click"
       Runat="server" />
   <asp:Button
       id="btnLogout"
       Text="Logout"
       OnClick="btnLogout_Click"
       Runat="server" />
   </form>

</body> </html></source>


Migrating Anonymous Profiles

   <source lang="csharp">

MigrateAnonymous event handler automatically copies the values of all anonymous Profile properties to the user"s current authenticated profile. File: Global.asax <%@ Application Language="C#" %> <script runat="server">

   public void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs args)
   {
       ProfileCommon anonProfile = Profile.GetProfile(args.AnonymousID);
       foreach (SettingsProperty prop in ProfileBase.Properties)
           Profile[prop.Name] = anonProfile[prop.Name];
       ProfileManager.DeleteProfile(args.AnonymousID);
       AnonymousIdentificationModule.ClearAnonymousIdentifier();
   }

</script></source>


Turning on anonymous capabilities personalization properties

   <source lang="csharp">

<configuration>

 <system.web>
    <profile>
       <properties>
          
          <add name="FirstName" type="System.String" />
          <add name="LastName" type="System.String" />
          <add name="LastVisited" type="System.DateTime" allowAnonymous="true" />
          <add name="Age" type="System.Integer" />
          <add name="Member" type="System.Boolean" />
          
       </properties>    
    </profile>
   <authentication mode="Windows" />
 </system.web>

</configuration></source>