Virtual Happy Hour this month, Jun 28, we'll be getting a sneak preview at our soon to launch SaaS CMS!

Try our conversational search powered by Generative AI!

Class EPiServerProfile

The base profile for users in EPiServer. Defines some basic information to implement common personalization solutions in a web site. Also contains personalization data needed for EPiServers edit mode.

Inheritance
System.Object
EPiServerProfile
Namespace: EPiServer.Personalization
Assembly: EPiServer.Cms.AspNet.dll
Version: 11.20.7
Syntax
public class EPiServerProfile : ProfileBase, IQueryableProfile, IQueryablePreference
Examples

Example checks if the user is authenticated and passes some Current User property values for rendering:

            if (Request.IsAuthenticated)
    {
        EPiServerProfile profile = EPiServerProfile.Current;
        firstname.Text = profile.FirstName;
        lastname.Text = profile.LastName;
        email.Text = profile.Email;
        company.Text = profile.Company;
    }

Example that is saving a dummy value in global scope, this information will be available on all pages for this user.

            // Print current value
    if (EPiServerProfile.Current["MyTestKey"] != null)
        Response.Write(EPiServerProfile.Current["MyTestKey"]);
// Set new value
EPiServerProfile.Current[&quot;MyTestKey&quot;] = &quot;MyTestValue&quot;;</code></pre>

Example of greeting a user with name.

            if (EPiServerProfile.Current != null)
    {
        if (EPiServerProfile.Current.FirstName != null)
            Response.Write("Greetings " + EPiServerProfile.Current.FirstName);
    }

Constructors

EPiServerProfile()

Initializes a new instance of the EPiServerProfile class.

Declaration
public EPiServerProfile()
Exceptions
Type Condition
System.Configuration.Provider.ProviderException

The enabled attribute of the profile section of the Web.config file is false.

System.Configuration.ConfigurationErrorsException

A property type specified in the profile section of the Web.config file could not be created. -or- The allowAnonymous attribute for a property in the profile section of the Web.config file is set to true and the enabled attribute of the <anonymousIdentification> element is set to false. -or- The serializeAs attribute for a property in the profile section of the Web.config file is set to System.Configuration.SettingsSerializeAs.Binary and the System.Type.IsSerializable property of the specified type returns false. -or- The name of a provider specified using the provider attribute of a profile property could not be found in the System.Web.Profile.ProfileManager.Providers collection. -or- The type specified for a profile property could not be found. -or- A profile property was specified with a name that matches a property name on the base class specified in the inherits attribute of the profile section.

EPiServerProfile(ProfileBase)

Initializes a new instance of the EPiServerProfile class.

Declaration
public EPiServerProfile(ProfileBase wrappedProfile)
Parameters
Type Name Description
System.Web.Profile.ProfileBase wrappedProfile

The wrapped profile.

Properties

ClientToolsActivationKey

Typed access to the "ClientToolsActivationKey" value. Key needed for the client tools.

Declaration
public string ClientToolsActivationKey { get; set; }
Property Value
Type Description
System.String

The client tools activation key.

Company

Typed access to the "Company" value.

Declaration
public string Company { get; set; }
Property Value
Type Description
System.String

The company.

Context

Gets the associated settings context.

Declaration
public override SettingsContext Context { get; }
Property Value
Type Description
System.Configuration.SettingsContext

Country

Typed access to the "Country" value.

Declaration
public string Country { get; set; }
Property Value
Type Description
System.String

The country.

Culture

Gets or sets the users preferred UI language in the form of a System.Globalization.CultureInfo object. This is equivalent to the Language property.

Declaration
public CultureInfo Culture { get; set; }
Property Value
Type Description
System.Globalization.CultureInfo

Current

Gets the profile for the current user.

Declaration
public static EPiServerProfile Current { get; }
Property Value
Type Description
EPiServerProfile

The EPiServerProfile object.

Remarks

Pulls the current profile from ASP.NET, but will throw exceptions if profiles are not enabled or if the profile is of the wrong type.

CustomExplorerTreePanel

Typed access to the "CustomExplorerTreePanel" value. The favorite pages for the user, displayed in the favorites tab in the page explorer.

Declaration
public string CustomExplorerTreePanel { get; set; }
Property Value
Type Description
System.String

The custom explorer tree panel.

DisplayName

Returns the user name in a format suitable for display.

Declaration
public string DisplayName { get; }
Property Value
Type Description
System.String

The display name of the user.

Remarks

If FirstName is defined, will return "FirstName LastName (UserName)", otherwise return "UserName".

EditTreeSettings

Typed access to the "EditTreeSettings" value. What icons the user wishes to see in the page tree.

Declaration
public GuiSettings EditTreeSettings { get; set; }
Property Value
Type Description
GuiSettings

The edit tree settings.

Email

Typed access to the "email" value.

Declaration
public string Email { get; set; }
Property Value
Type Description
System.String

The email.

EmailWithMembershipFallback

Gets the email address of the current user.

Declaration
public string EmailWithMembershipFallback { get; }
Property Value
Type Description
System.String

The email address, or null if not defined.

Remarks

Will first try to get email address from the profile data. If no email address defined, attempt to load email address from the current membership provider.

Note that the membership provider might not be defined or the provider might not support email address information.

In case of error we return null and log information with error level Error.

Enabled

Gets a value indicating whether profiles are enabled and there is a current profile record.

Declaration
public static bool Enabled { get; }
Property Value
Type Description
System.Boolean

true if enabled; otherwise, false.

Remarks

If this property returns true, then a call to EPiServerProfile.Current will not throw an exception.

FileManagerFavourites

Typed access to the "FileManagerFavourites" value. The favorite locations in the file system for the user.

Declaration
public List<string> FileManagerFavourites { get; set; }
Property Value
Type Description
System.Collections.Generic.List<System.String>

The file manager favourites.

FirstName

Typed access to the "FirstName" value.

Declaration
public string FirstName { get; set; }
Property Value
Type Description
System.String

The first name.

FrameworkName

Typed access to the "FrameworkName" value. Mode string for requested framework.

Declaration
public string FrameworkName { get; set; }
Property Value
Type Description
System.String

The name of the framework.

Item[String]

Gets or sets the System.Object with the specified property name.

Declaration
public override object this[string propertyName] { get; set; }
Parameters
Type Name Description
System.String propertyName
Property Value
Type Description
System.Object

Language

Typed access to the "Language" value. The language the user wants to see the UI in.

Declaration
public string Language { get; set; }
Property Value
Type Description
System.String

The language for the UI.

LastName

Typed access to the "LastName" value.

Declaration
public string LastName { get; set; }
Property Value
Type Description
System.String

The last name.

PropertyValues

Gets a collection of settings property values.

Declaration
public override SettingsPropertyValueCollection PropertyValues { get; }
Property Value
Type Description
System.Configuration.SettingsPropertyValueCollection

Providers

Gets a collection of settings providers.

Declaration
public override SettingsProviderCollection Providers { get; }
Property Value
Type Description
System.Configuration.SettingsProviderCollection

SubscriptionInfo

Typed access to the "SubscriptionInfo" value. The pages the user is subscribing to and the interval she wishes to get updates.

Declaration
public SubscriptionInfo SubscriptionInfo { get; set; }
Property Value
Type Description
SubscriptionInfo

The subscription info.

Title

Typed access to the "Title" value.

Declaration
public string Title { get; set; }
Property Value
Type Description
System.String

The title.

Methods

Get(String)

Gets the specified profile.

Declaration
public static EPiServerProfile Get(string username)
Parameters
Type Name Description
System.String username

The user name.

Returns
Type Description
EPiServerProfile

An EPiServerProfile with profile information for the given user.

Remarks

This is a convenience wrapper to return a profile as an EPiServerProfile. If profiles are not configured or if the returned profile is not of the correct type, returns null. I e will not throw an exception on error.

GetProfiles(String)

Gets the profiles for the passed username.

Declaration
public static IList<EPiServerProfile> GetProfiles(string userName)
Parameters
Type Name Description
System.String userName

Name of the user or role

Returns
Type Description
System.Collections.Generic.IList<EPiServerProfile>

list of profiles

Remarks

If passed in userName is a user then the profile for that user is returned else if passed in userName represents a role profiles for all role members are returned

Save()

Updates the profile data source with changed profile property values.

Declaration
public override void Save()

TryGetProfileValue(String, out Object)

Tries to get a profile value.

Declaration
public bool TryGetProfileValue(string profileProperty, out object value)
Parameters
Type Name Description
System.String profileProperty

The name of the profile property.

System.Object value

The value.

Returns
Type Description
System.Boolean

true if the value was read successfully, false otherwise.

Remarks

This method can be used as a convenience to handle a flexible profile with optional properties.

TrySetProfileValue(String, Object)

Tries to set a profile value.

Declaration
public bool TrySetProfileValue(string profileProperty, object value)
Parameters
Type Name Description
System.String profileProperty

The name of the profile property.

System.Object value

The value.

Returns
Type Description
System.Boolean

true if the value was set successfully, false otherwise.

Remarks

This method can be used as a convenience to handle a flexible profile with optional properties.

Wrap(ProfileBase)

Gets an EPiServerProfile from the ProfileBase instance.

Declaration
public static EPiServerProfile Wrap(ProfileBase profile)
Parameters
Type Name Description
System.Web.Profile.ProfileBase profile

The ProfileBase instance.

Returns
Type Description
EPiServerProfile

An EPiServerProfile instance.

Remarks

If the profile is already an EPiServerPrfile it is simply returned, otherwise it is wrapped in an EPiServerProfile instance.

Explicit Interface Implementations

IQueryablePreference.GetPreference(String, String)

Declaration
string IQueryablePreference.GetPreference(string userName, string preferenceName)
Parameters
Type Name Description
System.String userName
System.String preferenceName
Returns
Type Description
System.String

IQueryablePreference.SortOrder

Declaration
int IQueryablePreference.SortOrder { get; }
Returns
Type Description
System.Int32

IQueryableProfile.Find(String)

Asynchronously finds a user by criterion.

Declaration
ProfileBase IQueryableProfile.Find(string username)
Parameters
Type Name Description
System.String username

Find the user that match the profile.

Returns
Type Description
System.Web.Profile.ProfileBase

The matched profile.

Implements

Extension Methods