小编And*_*ndy的帖子

隐藏sessionState提供程序值的最佳方法

我在我的MVC应用程序中使用Redis缓存会话状态提供程序.当然,提供程序的所有设置都在我的Web.config中.如果我简单地将Host和Key以及所有内容放在简单的字符串中,该应用程序就可以工作,所以它看起来像这样:

  <sessionState mode="Custom" customProvider="MySessionStateStore">
      <providers>
          <add 
            type="Microsoft.Web.Redis.RedisSessionStateProvider"
            name="MySessionStateStore" 
            host = "[HOST]"
            port = "6379"
            accessKey = "[KEY]"
            ssl = "false"
            throwOnError = "true"
            retryTimeoutInMilliseconds = "5000"
            databaseId = "0"
            applicationName = "TRAXProSurvey"
            connectionTimeoutInMilliseconds = "5000"
            operationTimeoutInMilliseconds = "1000"
          />
      </providers>
    </sessionState>
Run Code Online (Sandbox Code Playgroud)

...其中"[HOST]"和"[KEY]"是实际值.但那不完全安全,对吗?有办法以某种方式隐藏这些信息吗?

我知道在Azure配置中使用App Settings - 事实上我正在使用其他一些东西.但我没有找到一种方法可以专门使用这些.我可以创建app设置变量,但是在sessionState中访问该值的方法是什么?我尝试使用System.Configuration.ConfigurationManager.AppSettings("[name]") - 只是那个,带引号和带单引号的那个.

我想也许我只是加密了Web.config ....我发现你可以在.pubxml中添加"<'MSDeployEnableWebConfigEncryptRule'> true <'/ MSDeployEnableWebConfigEncryptRule'>"(没有单引号) - 但这不起作用对于常规Azure网站.

我还发现了使用aspnet_regiis加密Web.config部分的文章/示例....但这样做在Azure之类的Web场环境中不起作用,对吧?

那么有什么其他选择(如果有的话)?......或者这是不可能的?谢谢!

asp.net-mvc session-state azure stackexchange.redis

6
推荐指数
1
解决办法
481
查看次数