Create a new SharePoint 2010 Empty Project in visual studio 2010.
Right click the project à Add New Itemà Select “Application Page”.
Add the ChangePassword control inside PlaceHolderMain content place holder
<asp:Content ID=”Main” ContentPlaceHolderID=”PlaceHolderMain” runat=”server”>
<asp:ChangePassword
id=”myChangePassword” newpasswordregularexpressionerrormessage=”Error: Your password must be at least 5 characters long, and contain at least one number and one special character.” runat=”server” CancelDestinationPageUrl=”~/pages/default.aspx” OnContinueButtonClick=”ContinueClickHandler” MembershipProvider=”SqlMembers” OnChangingPassword=”ChangingPassword” OnChangedPassword=”ChangedPassword”></asp:ChangePassword></asp:Content>
Put the following code for OnChangingPassword and OnChangedPassword Event handler in the code behind.
// the username would be in the following format // 0#.f|sqlmembers|nishantr // so we need to get only the username part // otherwise it wont work properly protected void ChangingPassword(object sender, EventArgs e) { System.Web.UI.WebControls.ChangePassword chngPassword = (System.Web.UI.WebControls.ChangePassword)sender; chngPassword.UserName = chngPassword.UserName.Substring(chngPassword.UserName.LastIndexOf("|") + 1); } // add reference to Microsoft.SharePoint.IdentityModel dll protected void ChangedPassword(object sender, EventArgs e) { System.Web.UI.WebControls.ChangePassword chngPassword = (System.Web.UI.WebControls.ChangePassword)sender; FormsAuthentication.SignOut(); Microsoft.SharePoint.IdentityModel.SPClaimsUtility.AuthenticateFormsUser(new Uri(SPContext.Current.Web.Url), chngPassword.UserName, chngPassword.NewPassword); }
Check this really helpful pack
http://sharepoint2010fba.codeplex.com/
Hope it helps.
Very clear and concise! Thanks Nishant
LikeLike
Hi this does not work for me, it always came on an error SPClaimsUtility not member of Identitymodel
LikeLike
This worked flawlessly in SharePoint 2013 claims auth and with FBA aspnetsql provider.
LikeLike