Henrik Buer
Mar 30, 2011
  4577
(4 votes)

Additional profile information as a single dll plugin

I’m sure many of you has written plugins to let editors/admins edit additional fields in the user profiles. This was a feature in CMS 4 but was removed in CMS 5. Many of my customers (and myself) wondered  why since this feature was widely used and it’s so easy to implement. Anyhow… I’ve gotten tired of doing the same thing in every site that I build so I decided to do a plugin that I just drop in the bin folder.I’ve written a configurable plugin that plugs in in the SidSettingsArea, i.e you get an extra tab in your “Edit user” or “My settings” page. This tab gives you the ability to edit fields in the profile that otherwise wouldn’t be visible.

image

It’s possible to configure what fields should appear and you should also specify translations in your language files for the labels (XPath //languages/language/profile/-profile property- )

As I sad this is a single dll plugin. I used Johan Olofssons excellent blog post for this. Other then that it’s pretty straight forward. The controls are added dynamically in OnInit() to a PlaceHolder depending on your configuration. The ascx-file looks like this:

<%@ Control Language="C#" AutoEventWireup="true" 
CodeBehind="Profile.cs" Inherits="Profile.Profile" %>

<asp:Panel ID="DefaultView" runat="Server" CssClass="epi-padding">
    <div class="epi-formArea">
        <div class="epi-size10">
            <asp:PlaceHolder runat="server" ID="plhControls" />
        </div>
    </div>
</asp:Panel>

 

I inherit from EPiServer.PlugIn.IUserSettings which gives you the LoadSettings() and SaveSettings() methods where you can manipulate a EPiServerProfile-object belonging to the selected user.

 

Configuration is easy. Just add a key to your appSettings-section. The values are the names from the profile properties in web.config separated by commas “,”.

<add key="ProfileFieldsToRender" value="FirstName,LastName,Title,Address,ZipCode,Company" />

For the moment only textboxes are rendered. Perhaps it could be useful to render more complex edit controls in the future?

 

Compiled version (CMS 6, .Net 4.0) here

Drop the dll in your bin folder and don’t forget to add the key to appSettings and to modify the language file to your needs.

You'll find the source code here

Mar 30, 2011

Comments

Henrik Buer
Henrik Buer Mar 31, 2011 08:00 PM

Damn! Now I see that Magnus Paulsson already has a blog post similar to mine... but there are some differences so now you have two sets of code to choose from :-)

Here's Magnus post:
http://world.episerver.com/Blogs/Magnus-Paulsson/Dates/2010/11/Plugin-to-edit-Profile-properties-in-Edit--Admin/

Please login to comment.
Latest blogs
Optimizely Opal: How to Build Effective Workflow Agents

If you're building workflow agents in Optimizely Opal, this post covers how specialized agents pass context to each other, why keeping agents small...

Andre | May 20, 2026

ReviewPR: An Azure Function That Reviews Your Azure DevOps Pull Requests With Claude

A while back I wrote about an  Azure Function App for PDF creation that we use to offload PDF rendering from our Optimizely DXP site. That same...

KennyG | May 19, 2026

Accelerating Optimizely CMS and Commerce upgrades with agentic AI (Part 2 of 2)

The Real Transformation in Optimizely CMS 13: Why the Upgrade Itself Is the Easy Part. A field-tested playbook for enterprise teams moving from...

Hung Le Hoang | May 18, 2026

Is the most powerful AI model really the best value?

Artificial Intelligence is already becoming part of everyday software development. Developers now use AI tools to generate code, write documentatio...

K Khan | May 16, 2026

Optimizely London Dev Meetup 2026

Well, everyone, it's that time of the year again, and we have another London Developer meet up coming for this summer. The date is set for the 2nd ...

Scott Reed | May 15, 2026

Semantic Search - Deep Dive

Deep dive into semantic search with Optimizely Graph

Michał Mitas | May 14, 2026 |