7

私はRedisSessionStateProviderこのhttps://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-session-state-caching/のような手順を使用しています

で接続文字列を定義します。web.configこの例ではXXXXXXです。

 <system.web>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.5" />
    <globalization culture="es-CO" uiCulture="es" />
    <customErrors mode="Off" />
    <sessionState mode="Custom" customProvider="SessionStateStore">
      <providers>
        <add name="SessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionString="XXXXXX" throwOnError="true" applicationName="NominappSession" />
      </providers>
    </sessionState>
  </system.web>

ソースコードに接続文字列を入れたくありません。では、Azure の設定を使用してこの接続文字列を定義するにはどうすればよいでしょうか?

github から azure にデプロイするので、Kudu を使用します。外部 CI サーバーを持っていません。

アドバイスをお願いします。

4

4 に答える 4

8

やったよ :)

これを行うには、接続文字列を通常の接続文字列としてではなく、環境変数として定義する必要があります。セッション状態では、環境変数名を使用します。

こちらです:

  <appSettings>
    <add key="REDIS_CONNECTION_STRING" value="redis,allowAdmin=true" />
  </appSettings>
  <system.web>
    <sessionState mode="Custom" customProvider="SessionStateStore">
      <providers>
        <add name="SessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionString="REDIS_CONNECTION_STRING" applicationName="REDIS_SESSION_APPLICATION_NAME" throwOnError="true" />
      </providers>
    </sessionState>
  </system.web>

これを使用して、Azure Web サイトのアプリ設定で接続文字列を定義できるようになりました

于 2016-02-26T00:59:11.643 に答える
8

ソース コードから接続文字列を提供できるようにしたいだけの場合は、次のように構成でsettingsClassNameおよびsettingsMethodNameプロパティを使用できます。

 <sessionState mode="Custom" customProvider="RedisSessionStateStore">
  <providers>
      <add
        name="RedisSessionStateStore"
        type="Microsoft.Web.Redis.RedisSessionStateProvider"
        settingsClassName="MyApp.SessionStateRedisSettings,MyApp"
        settingsMethodName="ConnectionString" />
  </providers>

ここで、settingsClassName はアプリ内のクラスの名前であり、その完全修飾名前空間があります。settingsMethod 名は、このクラスのメソッドの名前であり、静的である必要があり、0 パラメーターを取り、文字列を返します。例えば:

namespace MyApp
{
    public static class SessionStateRedisSettings
    {
        public static string ConnectionString()
        {
            return "ConnectionString goes here";
        }
    }
}

ここから: https://github.com/Azure/aspnet-redis-providers/wiki/Configuration

于 2018-02-01T15:36:39.817 に答える
0

この件に関する Scott Hanselman のブログをご覧ください: http://www.hanselman.com/blog/HowToKeepYourASPNETDatabaseConnectionStringsSecureWhenDeployingToAzureFromSource.aspx

Azure ポータル内のアプリ設定内に接続文字列を保存し、アプリ内からそれらを呼び出すことができます。これにより、文字列がソース コード内に含まれなくなります。ストレージ キーでも同じことを行う必要があります。

ポータルでアプリの設定に移動し、[アプリケーション設定] を選択します。そのペインを下にスクロールして、[接続文字列] を表示します。

このページの接続文字列セクションも確認してください: https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/

于 2016-02-20T22:51:22.433 に答える