- PR -

web.configから環境変数の値を読み込む

投稿者投稿内容
たつ
常連さん
会議室デビュー日: 2005/11/21
投稿数: 39
投稿日時: 2007-04-26 17:29
いつもお世話になっております。

現在oracleへの接続パラメータをweb.configのappSettingsに"ConnectionInfo"というキーで設定しています。
ですが、DBへのアクセス権限の関係から開発者は本番DBへアクセスできなくするために、接続パラメータを開発者からも隠す必要が出てきました。

そこで、接続パラメータはサーバの環境変数に設定をして取得しようかと思いました。
しかし、各画面のコネクションにはweb.configの"ConnectionInfo"から接続パラメータを取得するよう設定しているため、vbソースにてGetEnvironmentVariableから取得するように改修すると工数がかかってしまいます。
web.configの"ConnectionInfo"の値を取得しようとすると環境変数の値が取得できるようにしたいのですが、何かよい方法はないでしょうか。。

よろしくお願いします。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-04-27 09:36
すいません、何をやりたいのかわかりません。。。

環境変数には暗号化して接続文字列を格納するのですか?
web.config に記述するよりも簡単に取得できるような気がするのですが。。。

web.config には値を暗号化して格納する機能があります。
どっとねっとふぁん さんのサイトに詳しい記述があります。
http://dotnetfan.org/blogs/dotnetfanblog/articles/604.aspx
_________________
かるあ のメモスニペット
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2007-04-27 10:21
NAL-6295です。

多分、web.configに環境変数のパラメタを設定しておいて、
その取得したパラメタで環境変数にアクセスしたい。

という事だと思いますが、

そのような動作をするstaticなクラスとメソッドを用意しておいて、
今web.configから取得している箇所について置換してあげれば良いと思いますよ。
たつ
常連さん
会議室デビュー日: 2005/11/21
投稿数: 39
投稿日時: 2007-04-27 11:29
かるあさん、NAL-6295さん返答ありがとうございますm(__)m

そっか。なかなかレスがつかないのは意味が分からないのかf ^^;
説明するのって難しいですね(><)

やりたいことは
「System.Configuration.AppSettingsReader.GetValue("キー")でweb.configの「キー」の値を取得しようとすると、環境変数にある「キー」の値を取得してくる」
です。

画面に貼ったOracleConnectionオブジェクトのConnectionStringプロパティにweb.configの「キー」を指定してる画面が多く、全てに改修をいれずにそのまま取得できないものかと考えているのです。
ん〜無理かなぁ。。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-04-27 11:40
えっと、まず僕の回答が違う意図で読み取られている(というか僕の書き方が悪かった(汗))ので訂正を。
引用:

環境変数には暗号化して接続文字列を格納するのですか?
web.config に記述するよりも簡単に取得できるような気がするのですが。。。


簡単に取得できてしまうのが問題ではないか?という意味です。

引用:

たつさんの書き込み (2007-04-27 11:29) より:

やりたいことは
「System.Configuration.AppSettingsReader.GetValue("キー")でweb.configの「キー」の値を取得しようとすると、環境変数にある「キー」の値を取得してくる」
です。

画面に貼ったOracleConnectionオブジェクトのConnectionStringプロパティにweb.configの「キー」を指定してる画面が多く、全てに改修をいれずにそのまま取得できないものかと考えているのです。


これはたぶん難しいのではないでしょうか。

開発者に接続文字列を読み取られたくないという意味では、最初にあげた暗号化もありだと思うのですがどうでしょうか?
_________________
かるあ のメモスニペット
たつ
常連さん
会議室デビュー日: 2005/11/21
投稿数: 39
投稿日時: 2007-04-27 11:46
かるあさんありがとうございます。

サーバー自体へはアクセスの権限を与えてあるので、開発者はサーバーにログインすることがないので環境変数をみれません。(ログインしないと見れませんよね(・・?))

ソースのアップデートはソースを運用に渡すしくみですが、web.configは開発対象なので見えるのが問題なんです。

やっぱりソースになんの修正もなく環境変数から取得するのは無理ですね。。

web.configにfile属性をつけて別ファイルに切り出す方法で対応してみようかと思いますm(__)m
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-04-27 12:08
本番用と開発用の web.config を2つ用意したらいいだけ、とかではなくですか??
本番用の web.config は見れる人だけ見れるようにしたら良いと思いますが。
_________________
囚人のジレンマな日々
たつ
常連さん
会議室デビュー日: 2005/11/21
投稿数: 39
投稿日時: 2007-04-27 13:12
囚人さんありがとうございます。

現在web.configは本番用と開発用の2つ用意しています。
でも、web.configにキーを追加する修正が入ったりすると、本番用にも修正しないといけなくなり、結局本番用も開発者が修正を行っています。

file属性をつけた別ファイル化ができることがわかったので、各サーバー独自の設定は別ファイルに切り出して、開発・本番ともにweb.configは統一することを検討している現状です。

スキルアップ/キャリアアップ(JOB@IT)