我有一个asp.net web api,我需要从数据库中获取电子邮件列表 . 我需要将数据库连接字符串作为参数传递 . 我知道传递连接字符串是不安全的,但这是必需的 . 每当我传入连接字符串时,Rest客户端都会给我404 - Not Found . 但我在数据库类中设置连接字符串,它正在工作 . 那么如何将连接作为字符串传递并使其从数据库中检索电子邮件?
从db检索数据的代码
public List getEmailContacts(string connstr)
{
List emailList = new List();
MySqlDataReader rdr = null;
MySqlConnection myconn = new MySqlConnection(connstr);
String sqlstr = "SELECT * FROM emailcontacts";
MySqlCommand cmd = new MySqlCommand(sqlstr, myconn);
myconn.Open();
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
EmailContacts e = new EmailContacts();
e.Id = rdr.GetInt32(0);
e.Name = rdr.GetString(1);
e.Email = rdr.GetString(2);
emailList.Add(e);
}
rdr.Close();
myconn.Close();
myconn.Dispose();
return emailList;
}
得到Api
[HttpGet]
[Route("api/EmailContacts/{connstr}")]
public List Get(string connstr)
{
SalesDBConn db = new SalesDBConn();
return db.getEmailContacts(connstr);
}
这就是我尝试在其余客户端中传递连接字符串的方法
http://localhost:59547/api/EmailContacts/server = example.com; uid = myusername; pwd = mypassword; database = mydb_example