C# 如何使用asp.net访问和修改托管在不同服务器上的项目的web配置文件

C# 如何使用asp.net访问和修改托管在不同服务器上的项目的web配置文件,c#,asp.net,web-config,C#,Asp.net,Web Config,我正在开发一个应用程序,如果提供sql数据库管理员用户名和密码,它可以更改sql server用户的密码 这是密码 string Connt = ConfigurationManager.ConnectionStrings["DBConnectionString"].ToString(); SqlConnection sqlConnection1 = new SqlConnection(Connt); SqlCommand cmd = new SqlCommand(); SqlDataRead

我正在开发一个应用程序,如果提供sql数据库管理员用户名和密码,它可以更改sql server用户的密码

这是密码

string Connt = ConfigurationManager.ConnectionStrings["DBConnectionString"].ToString();

SqlConnection sqlConnection1 = new SqlConnection(Connt);
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;

string newone = "pwd";
string username = "username";

cmd.CommandText = "alter login " + username + " with password = '" + newone + "' old_password= '" + old + "' ";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection1;

sqlConnection1.Open();

cmd.ExecuteNonQuery();
sqlConnection1.Close();
然后,我需要在使用相同用户的应用程序的web配置文件中的连接字符串中更改此sql用户密码

string path = "path";
ExeConfigurationFileMap map = new ExeConfigurationFileMap();
map.ExeConfigFilename = path;

Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);

string connStr_App = config.AppSettings.Settings["ConnectionString"].Value;
config.AppSettings.Settings.Remove("ConnectionString");
config.AppSettings.Settings.Add("ConnectionString", "conectionstringwithnewpassword");
config.Save(ConfigurationSaveMode.Modified);
到目前为止,它运行良好。 但问题是,我只能更改托管在同一台计算机上的应用程序的web配置文件

假设我有管理员密码和用户名,我需要更改托管在不同服务器上的应用程序的web配置文件

这个链接似乎很有用 但是我的应用程序需要远程服务器上的管理权限。如何实现这一点?现在显示的是拒绝访问(HRESULT中的异常:0x80070005(E_ACCESSDENIED))消息。
顺便说一句,我激活了服务器上的远程配置组件。

要访问另一台机器上的配置,我猜您需要在那里运行某种服务,以允许进行此更新(或FTP)。我不认为有一个简单的方法可以远程实现这一点(有充分的理由)

您还需要查看代码中的大量SQL注入漏洞。。。这并不难修复,特别是在您使用管理员凭据运行时:


很抱歉,这是我的代码中的一个错误 如下代码所示。