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 を格納するためのデータベース テーブルを 2 つ作成することを考えていました (将来的には複数の URL が存在する可能性があります)。ユーザー名とパスワードを格納する別のテーブル。これらの設定を保存する正しい方法は、データベース テーブルを作成することです。

4

1 に答える 1

40

これらの設定を保存するには、Web.Config ファイル ( Configuration API ) を使用する必要があります。このようにして、毎回アプリケーション全体を再コンパイルすることなく設定を更新できます。これは、Web (MVC または WebForms) アプリケーションに設定を保存する最も標準的な方法であり、アプリケーションに対して透過的に機密設定を暗号化する可能性を提供します。

WebConfigurationManagerクラスを使用して、保存された設定にアクセスできます。ここでは、使用方法の例をいくつか見つけることができます。

コードサンプル:

Web.config appSettings:

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

C# コード:

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