如何删除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="&lt;connectionStrings&gt;&#xA;    &lt;add name=&quot;ARCHQConnection&quot; connectionString=&quot;LDAP://exeterblr.com/DC=exeterblr.SA,DC=in&quot; /&gt;&#xA;  &lt;/connectionStrings&gt;" />
  </connectionStrings>

尽管我尝试用

更新它
<add name="ARCHQConnection" connectionString="LDAP://exeterblr.com/DC=exeterblr.SA,DC=in" />

如何删除html字符,同时更新web.config

你的代码逻辑是错误的。您的代码只更新了连接字符串属性,但是您插入了整个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();