0

現在、他の Azure アプリ用に保護されたレジストリ キーに暗号化キーを保存しており、スタートアップ タスクを介してそのキーを追加しています。ライトスイッチ アプリにも csdef ファイルがあることがわかりますが、スタートアップ タスクがローカルまたは Azure で起動することはないようです。出力をcmdファイルに追加しようとしたこともあるので、何らかのエラーがあるかどうかを確認できますが、ファイルは作成されていません。Lightswitch には Win32.registry がないようなので、コードを介してキーを追加することは問題外のようです。

他の誰かが、Azure でホストされているライトスイッチ アプリでスタートアップ タスクを実行できましたか? 私が理解しているように、物事の紺碧の側面は、ライトスイッチと web.worker ロールを含むプロジェクトの間でそれほど異なるべきではありません。それらはまだ vm で実行されているため、スタートアップ タスクは引き続きレジストリにアクセスできるはずです。それが不可能な場合、レジストリ キーを追加する方法について他に考えがある人はいますか? キーをコードに入れることは、間違いなく理想的ではありません。参考までに、reg ファイルと cmd ファイルの両方がサーバー フォルダーにあり、content と copy always に設定されています。

startup.cmd:

regedit /s 456ddfrt.reg 
exit /b 0

csdef:

 <WebRole name="LightSwitchWebRole"
         vmsize="Small"
         enableNativeCodeExecution="true">
  <Startup>
    <Task commandLine="startup.cmd" executionContext="elevated"  taskType="simple"/>
  </Startup>

解決

Yann の提案に従って、Isolated Storage を使用することになりました。コード例を以下に示します。

        //Get key from storage, add if not exists
        try
        {
            String strKey = (string)appSettings["encrKey"];
            strKey = DecryptString(strKey);
        }
        catch (Exception Ex)
        {
            appSettings.Add("encrKey",[mykey]);
            String strKey = (string)appSettings["encrKey"];
            strKey = DecryptString(strKey);
        }

キーをコードに入れる必要がありますが、キーは別の暗号化方法を使用して暗号化されており、Azure では、コードにアクセスできる可能性はかなり低くなります。すべての提案をありがとう!

4

1 に答える 1

0

アプリケーションの Application_Initialize メソッドの使用について考えたことはありますか?

于 2013-03-13T12:29:20.790 に答える