2

asp.net mvc Web アプリケーションの Web.config ファイル内に次の設定を追加しました。

<appSettings>
    //code goes here
    <add key="ApiUserName" value="testuser" />
    <add key="ApiPassword" value=,,,… />
    <add key="ApiURL" value="http://win-spdev:8400/servlets/AssetServlet" />
  </appSettings>

これらの設定は、コントローラー アクション メソッド内で次のように API 呼び出しを開始するために使用されます。

    using (var client = new WebClient())
                    {
                        var query = HttpUtility.ParseQueryString(string.Empty);
                        foreach (string key in formValues)
                        {
                            query[key] = this.Request.Form[key];
                        }

query["username"] = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiUserName"];
query["password"] = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiPassword"];
query["assetType"] = "Rack";
query["operation"] = "AddAsset";
string apiurl = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiURL"];
var url = new UriBuilder(apiurl);

web.config ファイルhttp://msdn.microsoft.com/en-us/library/zhhddkxy.aspxの暗号化と復号化に関する次のリンクを読みました。しかし、上記のアクションメソッド内で、リンクに記載されている暗号化と復号化を行う方法がわかりませんか?

4

1 に答える 1

3

基本的に 2 つの標準的な方法があります。DPAPI または RSA で aspnet_regiis を使用できます。RSAでそれを行う利点は、アプリケーションが複数のマシンで実行されている場合、RSAキーで一度暗号化し、すべてのマシンで同じキーを使用して復号化できることです.DPAPIの場合と同様に、マシンごとに個別に暗号化する必要があります.走っています。

たとえば DPAPI を使用すると、基本的にフレームワーク ディレクトリに移動して、次のコマンドを実行するだけです。

aspnet_regiis -pe "connectionStrings" -app "/MyApplication"

上記のコマンドは、IIS でのアプリケーションの名前である "MyApplication" の接続文字列を暗号化します。これは、アプリが実行されているマシンで実行する必要があるため、最初にアプリをサーバーにコピーする必要があります。RSA 方式を使用すると、自分のマシン (またはビルド サーバー) で暗号化してから、任意のマシンにデプロイできます。

チュートリアルの詳細については、http://msdn.microsoft.com/library/dtkwfdky.aspx で確認できます

これの優れた点は、アプリケーションの設定と接続文字列にアクセスする方法について心配する必要がないことです。通常どおり ConfigurationManager.Appsettings と ConfigurationManager.ConnectionStrings を使用するだけで、フレームワークが復号化を処理します。あなた。

于 2013-08-04T22:07:01.830 に答える