ASP.NET Tutorial/Profile/Anonymous Profiles

Материал из .Net Framework эксперт
Версия от 12:00, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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

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">
    <div>
    User Name:
    <asp:Label
        id="lblUserName"
        Runat="server" />
    <br />
    Is Anonymous:
    <asp:Label
        id="lblIsAnonymous"
        Runat="server" />
    <br />
    Number Of Visits:
    <asp:Label
        id="lblNumberOfVisits"
        Runat="server" />
    <hr />
    <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" />
    </div>
    </form>
</body>
</html>


Migrating Anonymous Profiles

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>


Turning on anonymous capabilities personalization properties

<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>