如何删除html字符,同时更新web.config
本文关键字:更新 config web 字符 html 何删除 删除 | 更新日期: 2023-09-27 18:10:56
我有一个简单的winforms应用程序,允许管理员更新连接字符串。管理员将输入更新的连接字符串,并将其保存在修改后的web中。配置文件。但我无法删除html字符,如>& lt;在更新连接字符串时得到保存。
我尝试了httpuity。HtmlDecode,但没有成功。更新代码片段如下所示:
private void updateButton_Click(object sender, EventArgs e)
{
var configFile = new FileInfo(@"C:'Users'cnandy'Desktop'Test'Websites'AccountDeduplicationWeb'web.config");
var vdm = new VirtualDirectoryMapping(configFile.DirectoryName, true, configFile.Name);
var wcfm = new WebConfigurationFileMap();
wcfm.VirtualDirectories.Add("/", vdm);
Configuration config = WebConfigurationManager.OpenMappedWebConfiguration(wcfm, "/");
var configSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
String connString = String.Empty;
if (configSection != null)
{
var xElement = XElement.Parse(configTextBox.Text);
connString = xElement.Attribute["connectionString"].Value;
configSection.ConnectionStrings["ARCHQConnection"].ConnectionString = HttpUtility.HtmlDecode(connString);
config.Save();
//var xElement = XElement.Parse(connString);
//connString = xElement.Attribute("connectionString").Value;
//configSection.ConnectionStrings["ARCHQConnection"].ConnectionString = connString;
//config.Save();
}
updateMessageLabel.Text = "Config Updated Successfully !! ";
showDecryptedConfig();
}
如果输入的连接字符串类似于
则此代码将其更新为
<connectionStrings>
<add name="ARCHQConnection" connectionString="<connectionStrings>
 <add name="ARCHQConnection" connectionString="LDAP://exeterblr.com/DC=exeterblr.SA,DC=in" />
 </connectionStrings>" />
</connectionStrings>
尽管我尝试用
更新它<add name="ARCHQConnection" connectionString="LDAP://exeterblr.com/DC=exeterblr.SA,DC=in" />
你的代码逻辑是错误的。您的代码只更新了连接字符串属性,但是您插入了整个XML Element。
解决方案将只插入LDAP://exeterblr.com/DC=exeterblr.SA,DC=in
到您的文本框。
另一个解决方案是使用以下代码接收connectionString属性:
var xElement = XElement.Parse(connString);
connString = xElement.Attribute("connectionString").Value;
也许你可以试试:
我已将var更改为string和
HttpUtility.HtmlDecode
函数已应用于下一行。看看能不能帮到你。
string connString = configTextBox.Text;
configSection.ConnectionStrings["ARCHQConnection"].ConnectionString = HttpUtility.HtmlDecode(connString);
config.Save();
刚刚意识到您正在将完整的XML发送到Textbox,因此您需要像这样获取connectionstring属性的值
var xElement = XElement.Parse(connString);
connString = xElement.Attribute["connectionString"].Value;
configSection.ConnectionStrings["ARCHQConnection"].ConnectionString = connString;
config.Save();
<<h2> 更新代码/strong> XmlDocument doc = new XmlDocument();
doc.Load(configTextBox.Text);
XmlNode ConnStr = doc.getElementByTagName("add");
connString = ConnStr.Attributes["connectionString"].Value
configSection.ConnectionStrings["ARCHQConnection"].ConnectionString = connString;
config.Save();