20

我正在开发一个对其他 Web 应用程序执行一些 API 调用的 asp.net mvc Web 应用程序。但目前我将 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)。还有另一个表来存储用户名和密码。创建数据库表也是存储这些设置的正确方法。

4

1 回答 1

40

您应该使用 Web.Config 文件 ( Configuration API ) 来存储这些设置。这样您就可以更新设置,而不必每次都重新编译整个应用程序。这是在 Web(MVC 或 WebForms)应用程序中存储设置的最标准方式,并且使您可以对应用程序透明地加密敏感设置。

您可以使用WebConfigurationManager类访问存储的设置。在这里,您可以找到一些如何使用它的示例。

代码示例:

Web.config 应用设置:

<appSettings>
    <add key="ApiUserName" value="MySampleUsername" />
</appSettings>

C#代码:

string userName = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiUserName"];
于 2013-08-04T15:51:40.310 回答