我正在开发一个asp.net mvc Web应用程序,它可以对其他Web应用程序执行一些API调用。但目前我在我的代码中存储API用户名,API密码和API URL。如下: -
using (var client = new WebClient())
{
// client.Headers[HttpRequestHeader.Accept] = "AddAsset";
var query = HttpUtility.ParseQueryString(string.Empty);
foreach (string key in formValues)
{
query[key] = this.Request.Form[key];
}
query["username"] = "testuser";
query["password"] = "……";
query["assetType"] = "Rack";
query["operation"] = "AddAsset";
var url = new UriBuilder("http://win-spdev:8400/servlets/AssetServlet");
url.Query = query.ToString();
try
{
但是,如果我需要更改API调用设置,那么将这些设置存储在我的代码中将不灵活,并且它不安全。那么存储这些设置的最佳方法是什么。我正在考虑创建两个用于存储URL的数据库表(未来可能会有多个URL)。另一个表存储用户名和密码。因此,创建数据库表是存储这些设置的正确方法。
答案 0 :(得分:37)
您应该使用Web.Config文件(Configuration API)来存储这些设置。这样您就可以更新设置,而无需每次都重新编译整个应用程序。这是在Web(MVC或WebForms)应用程序中存储设置的最标准方法,并使您可以encrypt sensitive settings透明地使用您的应用程序。
您可以使用WebConfigurationManager课程访问存储的设置。 Here您可以找到一些如何使用它的示例。
代码示例:
Web.config appSettings:
<appSettings>
<add key="ApiUserName" value="MySampleUsername" />
</appSettings>
C#代码:
string userName = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiUserName"];