Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
ProfileModule Class

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

The ProfileModule type exposes the following members.

Public methodProfileModuleInitializes a new instance of the ProfileModule class.

Public methodDisposeReleases all resources used by the ProfileModule.
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodInitCalls initialization code when a ProfileModule object is created.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

Public eventMigrateAnonymousOccurs when the anonymous user for a profile logs in.
Public eventPersonalizeOccurs before the user profile is created.
Public eventProfileAutoSavingOccurs 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

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 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.
© 2015 Microsoft