ProfileModule Class


Manages the creation of the user profile and profile events. This class cannot be inherited.

Namespace:   System.Web.Profile
Assembly:  System.Web (in System.Web.dll)


public sealed class ProfileModule : IHttpModule


Initializes a new instance of the ProfileModule class.


Releases all resources used by the ProfileModule.


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)


Calls initialization code when a ProfileModule object is created.


Returns a string that represents the current object.(Inherited from Object.)


Occurs when the anonymous user for a profile logs in.


Occurs before the user profile is created.


Occurs at the end of page execution if automatic profile saving is enabled.

When the user profile is enabled, ASP.NET uses the ProfileModule to create the user profile and store it in the Profile property of the current HttpContext.

The ProfileModule exposes the following events you can handle to configure authentication in your application:

  • The MigrateAnonymous event, to migrate profile settings from an anonymous profile to an authenticated profile when an anonymous user logs in.

  • The Personalize event, to customize how the user profile is created.

  • The ProfileAutoSaving event, to control how the user profile is saved when the AutomaticSaveEnabled property is set to true.

For information about enabling the user profile, see profile Element (ASP.NET Settings Schema).

The following example shows a Web.config file that enables anonymous identification and profile properties that support anonymous users.

    <authentication mode="Forms" >
      <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" />

    <anonymousIdentification enabled="true" />

    <profile enabled="true" defaultProvider="AspNetSqlProvider">
        <add name="ZipCode" allowAnonymous="true" />
        <add name="CityAndState" allowAnonymous="true" />
        <add name="StockSymbols" type="System.Collections.ArrayList" allowAnonymous="true" />

The following code example shows the MigrateAnonymous event included in the Global.asax file for an ASP.NET application. The MigrateAnonymous event copies profile property values from the anonymous profile to the profile for the current user.

public void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs args)
  ProfileCommon anonymousProfile = Profile.GetProfile(args.AnonymousID);

  Profile.ZipCode = anonymousProfile.ZipCode;
  Profile.CityAndState = anonymousProfile.CityAndState;
  Profile.StockSymbols = anonymousProfile.StockSymbols;

  // Delete the anonymous profile. If the anonymous ID is not 
  // needed in the rest of the site, remove the anonymous cookie.


  // Delete the user row that was created for the anonymous user.
  Membership.DeleteUser(args.AnonymousID, true);


.NET Framework
Available since 2.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top