Say you have your user credientials placed in your web.config . How do you change the passord for a user programatically. Less talk, more code.
Sample web.config in root folder:
<
system.web>
<
compilation debug="true" />
<
authentication mode="Forms"><forms loginUrl="login.aspx" defaultUrl="default.aspx">
<
credentials passwordFormat="Clear"><user name="user" password="user" />
<
user name="admin" password="admin" /></credentials>
</
forms></authentication>
<
authorization><deny users="?"/> </authorization>
</system.web>
Code for changing Password:
Configuration
webconfig = WebConfigurationManager.OpenWebConfiguration("~");
SystemWebSectionGroup sysweb = (SystemWebSectionGroup)webconfig.GetSectionGroup("system.web");
AuthenticationSection authSection = sysweb.Authentication;
FormsAuthenticationUserCollection users = authSection.Forms.Credentials.Users;
FormsAuthenticationUser user = users["UserName"]; //you can grab it from a textbox or User.Identity.Name ~ current LoggedIn User
user.Password = "newPassword" //you can grab it from a textbox......
webconfig.Save();
Namespaces added:
using
System.Configuration;
using
System.Web.Configuration;
Points to Note:
- Configuration webconfig = WebConfigurationManager.OpenWebConfiguration("~");
I got an exception : “System.InvalidOperationException: ConfigurationSection properties cannot be edited when locked” when tried to use Configuration webconfig = WebConfigurationManager.OpenWebConfiguration("~//web.config");
- Permissions to web.config
Make sure to grant Modify/Write permission to ASPNET useraccount (or the user account which is going to perform this action).