Click here to Skip to main content
11,565,743 members (45,566 online)
Click here to Skip to main content

MOSS Change Password Feature for FBA

, 28 Dec 2008 CPOL 53.8K 542 14
Rate this:
Please Sign up or sign in to vote.
This feature enables a MOSS user to change his/her password when forms based authentication is enabled

Introduction

This article explains how to make a change password feature in MOSS 2007, so the user can change his/her password. This article doesn't describe how to enable FBA (Forms Based Authentication) in MOSS that you can find easily in different blogs and articles in the internet. I suggest this article on The Code Project: MOSS 2007 – Enabling Forms Authentication [^].

Problem

When you enable forms authentication on MOSS, it means that users credentials are stored in membership database like ASP.NET database. MOSS doesn't facilitate the user to change his/her password in this database.

Solution

Our suggested solution is adding a new feature (Change Password feature) in the standard user menu:

The feature redirects the user to a custom page (ChangePassword.aspx) that prompts him to enter current and new passwords.

Solution Details

If you are not interested to walk through the solution, you can use the attached files and go directly to Part III Deployment. Actually I got the solution from Sheetal Jain's blog [^] but I added details and clarifications.

The following steps explain the solution in detail:

  1. Creating ChangePassword.aspx 
  2. Creating ChangePassword feature 
  3. Deployment

1. Creating ChangePassword.aspx

You can do it using Visual Studio by creating a new web site ‘TempSite’ and then:

  1. Adding a new web form ‘ChangePassword.aspx

  2. Dragging a ChangePassword control form the toolbox to the form

  3. Setting control effective properties like (NewPasswordRegularExpressionErrorMessage, CancelDestinationPageUrl, ContinueDestinationPageUrl)

  4. Applying MOSS master page, by setting ‘MasterPageFile’ page property to your selected master page in MOSS like ‘~/_layouts/simple.master’, then removing all HTML tags and adding content tag for the master page content place holder (PlaceHolderMain for the main content in the middle of the page). The final page should be like this page:

    <%@ Page Language="C#" MasterPageFile="~/_layouts/simple.master"  %>
    
    <asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderMain" runat="server">
    <asp:ChangePassword id="myChangePassword" 
    	newpasswordregularexpressionerrormessage="Error: 
    	Your password must be at least 7 characters long, 
    	and contain at least one number and one special character."
    runat ="server" CancelDestinationPageUrl="~/pages/default.aspx"
    ContinueDestinationPageUrl="~/pages/default.aspx" >
    </asp:ChangePassword>
    
    </asp:Content>

2. Creating ChangePassword Feature

Before you start, here is a good tutorial for creating custom features in MOSS [^]:

  1. Create a new folder ‘ChangePassword’ and create a new XML file in it ‘feature.xml’:

    <?xml version="1.0" encoding="utf-8"?>
    <Feature  Id="FEAD7555-AE6D-45DD-8260-13B563CB4C71"
              Title="Change Password"
              Description="Change Password"
              Version="1.0.0.0"
              Scope="Site"
              xmlns="http://schemas.microsoft.com/sharepoint/">
    
    	<ElementManifests>
    		<ElementManifest Location="elements.xml" />
    	</ElementManifests>
    
    </Feature>
  2. Edit feature Id to a unique GUID, you can get it from guidgen in this path C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\guidgen.exe

  3. Edit feature Title, Description and Version as per your need

  4. Edit Scope property to be ‘Site’ or ‘Web’ to indicate if the feature is used per site or in the entire web

  5. In ElementManifest element, set Location property to an XML file location ‘elements.xml’ that contains more feature properties

  6. Create ‘elements.xml’ in the same folder with ‘feature.xml’ to be as:

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    	<CustomAction 
    		Id="ChangePasswordMenuId" 
    		Title="Change Password" 
    		Description="Change your password" 
    		Sequence="2000" 
    		Location="Microsoft.SharePoint.StandardMenu" 
    		GroupId="PersonalActions" >
    		<UrlAction Url="~site/_layouts/changepassword.aspx"/>
    	</CustomAction>
    </Elements>
  7. Set CustomAction properties as shown, Location to be ‘StandardMenu’ and UrlAction URL property to be ‘~site/_layouts/changepassword.aspx’ as we are going to add our ChangePassword.aspx to this path.

3. Deployment

  1. Copy ‘ChangePassword.aspx’ file to the following path:
    C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\

  2. Copy ‘ChangePassword’ folder that contains elements.xml and feature.xml to the following path: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\

  3. Open stsadm tool and run the following command:

    stsadm -o installfeature -name ChangePassword 

Now the feature is installed successfully, but needs to be activated.

  1. Open your site, the select Site Actions - Site Settings - Modify All Site Settings.
    From the appeared page, select Site Collection Features (under the Site Collection Administration submenu):

  2. The new feature will be listed, Select Activate.

  1. Now you can find ‘Change Password’ action in the standard user menu:

    And this action redirects to changepassword.aspx page:

That is all. Thanks a lot!

Thanks

Many thanks to Ahmad Marwan Madkhana for his support.

History

  • 28th December, 2008: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Akrumooz
Software Developer LINKdotNET (http://www.link.net)
Egypt Egypt
Akram Aly Mossa is an intermediate level software developer, gained many experiences in different fields (development is one of them), born in Egypt 1981, graduated from Al-Azhar university 2005,
and looking for a good future...

You may also be interested in...

Comments and Discussions

 
QuestionCan not change pass Pin
hoang45619-Jun-11 22:31
memberhoang45619-Jun-11 22:31 
GeneralMy vote of 5 Pin
KaustubhWadi1-Dec-10 20:36
memberKaustubhWadi1-Dec-10 20:36 
GeneralCancelDestinationURL not working when multiple sites are created Pin
joffies13-Aug-10 5:50
memberjoffies13-Aug-10 5:50 
AnswerRe: CancelDestinationURL not working when multiple sites are created Pin
Akrumooz13-Aug-10 22:03
memberAkrumooz13-Aug-10 22:03 
GeneralRe: CancelDestinationURL not working when multiple sites are created Pin
joffies15-Aug-10 22:49
memberjoffies15-Aug-10 22:49 
GeneralRe: CancelDestinationURL not working when multiple sites are created Pin
Akrumooz16-Aug-10 1:15
memberAkrumooz16-Aug-10 1:15 
GeneralRe: CancelDestinationURL not working when multiple sites are created Pin
joffies16-Aug-10 2:28
memberjoffies16-Aug-10 2:28 
GeneralRe: CancelDestinationURL not working when multiple sites are created Pin
Akrumooz16-Aug-10 10:45
memberAkrumooz16-Aug-10 10:45 
QuestionMOSS Change Password Feature for FBA Pin
sandeeppo29-Apr-10 21:31
membersandeeppo29-Apr-10 21:31 
GeneralThank you Pin
bswamy31-Aug-09 0:11
memberbswamy31-Aug-09 0:11 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150624.2 | Last Updated 28 Dec 2008
Article Copyright 2008 by Akrumooz
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid