在web项目中将管理员的密码存储在web.config文件中,要求可以修改其密码,那么如何对web.config文件进行修改呢?
解决方案:
web.cofig文件其实也是xml,所以使用对xml操作的方法即可实现。
由于xp操作系统对操作权限的限制,所以在调试前应该将web文件夹的权限进行设置,添加AspNet用户,并使之拥有修改的权限。
主要使用XmlDocument来解析web.config.并用SelectSingleNode()方法来定位要修改的配置节。要注意的是最后程序要Save(),所以,你的apsnet帐号必须对web.config拥有写权限
代码如下:
1
//
节“SysAdminPass”用来存储密码
2
3 XmlDocument webconfigDoc = new XmlDocument();
4
5 string filePath = HttpContext.Current.Request.PhysicalApplicationPath + @" \web.config " ;
6
7 // 设置节的xml路径
8 string xPath = " /configuration/appSettings/add[@key='?'] " ;
9
10 // 加载web.config文件
11 webconfigDoc.Load(filePath);
12
13 // 找到要修改的节点
14 XmlNode passkey = webconfigDoc.SelectSingleNode(xPath.Replace( " ? " , " SysAdminPass " ));
15
16 // 设置节点的值
17 passkey.Attributes[ " value " ].InnerText = strNewpwd;
18
19 // 保存设置
20 webconfigDoc.Save(filePath);
21
2
3 XmlDocument webconfigDoc = new XmlDocument();
4
5 string filePath = HttpContext.Current.Request.PhysicalApplicationPath + @" \web.config " ;
6
7 // 设置节的xml路径
8 string xPath = " /configuration/appSettings/add[@key='?'] " ;
9
10 // 加载web.config文件
11 webconfigDoc.Load(filePath);
12
13 // 找到要修改的节点
14 XmlNode passkey = webconfigDoc.SelectSingleNode(xPath.Replace( " ? " , " SysAdminPass " ));
15
16 // 设置节点的值
17 passkey.Attributes[ " value " ].InnerText = strNewpwd;
18
19 // 保存设置
20 webconfigDoc.Save(filePath);
21