- PR -

Webアプリケーションからサーバのレジストリ情報を取得

投稿者投稿内容
ムース
会議室デビュー日: 2003/10/06
投稿数: 9
投稿日時: 2006-01-04 11:01
Webアプリケーションからサーバのレジストリ情報を取得したいのですが、
下記のコードを実行すると「key」はnullになります。

RegistryKey Key = Registry.CurrentUser.OpenSubKey(サブキー,false);

同様のコードをWindowsアプリケーションで動作確認してみると、正常に値が返却されます。

「HKEY_LOCAL_MACHINE」の情報は取得できるのでユーザ関連の設定だと思うのですが
検索して見付かった、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15016&forum=7
を参考にして、Web.configでidentity要素を下記のように指定したのですがうまくいきません。

<identity impersonate="true" />

指定の方法が悪いのでしょうか。。
初歩的な質問で申し訳ありませんが、ご教授の程よろしくお願い致します。

(動作環境 )
WindowsXP(SP2)
MSDE 2003
(.NET Framework1.1)
Katze
ベテラン
会議室デビュー日: 2005/11/01
投稿数: 74
お住まい・勤務地: 1台でも せんだい
投稿日時: 2006-01-04 11:06
もしかしたらですが、ユーザとパスワードの指定をしていないから
ということはないでしょうか?

<identity impersonate="true"
userName="xxxxx"
password="xxxxx"
/>

※ xxxxx は適切なユーザとパスワードです。

見当違いでしたらスイマセン・・・


[ メッセージ編集済み 編集者: Katze 編集日時 2006-01-04 11:08 ]
ムース
会議室デビュー日: 2003/10/06
投稿数: 9
投稿日時: 2006-01-04 11:52
Katzeさん、返信をありがとうございます!

<identity impersonate="true"
userName="xxxxx"
password="xxxxx"
/>
で現在ログインしているユーザ/パスワードを指定してみましたが、
結果は取得できませんでした。。

http://www.atmarkit.co.jp/fdotnet/hybooks/vbnet02/vbnet02_02.html
の記事を参照すると、
<identity impersonate="true" />
の指定だけで「ログオン・ユーザーに偽装する」事が出来ると書いてあるので
ユーザの指定は必要無いのかなと思っていました。

<identity impersonate〜で指定するユーザは現在のログインユーザでは
無いのでしょうか??
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-01-04 11:56
HKEY_LOCAL_MACHINEが読めるのは分かりました。で、読めないのは何ですか?
「したのですがうまくいきません。」とはどの様な状態ですか?何かのエラーにあるのですか?それとも意図したのとは別の値が読み取れるのですか?
ムース
会議室デビュー日: 2003/10/06
投稿数: 9
投稿日時: 2006-01-04 12:08
甕星さん、書き込みをありがとうございます!

現象をまとめますと、
「HKEY_LOCAL_MACHINE」の情報は取得できる。
「HKEY_CURRENT_USER」の情報は取得できない。
  ↑RegistryKey Key = Registry.CurrentUser.OpenSubKey(サブキー,false);
   を実行するとエラーにはならずに、「Key」の値に何も入ってきません。

書き方が悪く、お手数かけてしまって申し訳ありません(>_<)
ホッピー
会議室デビュー日: 2006/01/04
投稿数: 4
投稿日時: 2006-01-04 14:31
こちらの情報が参考になるかもしれません

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/dv_vbcode/html/vbtskcodeexamplereadingdatafromregistry.asp
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2006-01-04 14:45
実際やったことがないので恐らくですが…偽装だと UserProfile 自体(HKEY_CURRENT_USER もこれに含まれます)が読み込まれていないと思います。

LoadUserProfile を使用して読み込んだあとにリンク先のようにhProfileを使用してアクセスすることになると思います。

…もっと簡単な手段があったりするかなぁ。
ムース
会議室デビュー日: 2003/10/06
投稿数: 9
投稿日時: 2006-01-04 15:39
未記入さん、yaさん、返信をありがとうございます!

未記入さんに教えて頂いたサイト内容を確認し設定を色々いじってみていたのですが・・未だ取得できない状態です。

また先ほど私、「HKEY_CURRENT_USERの情報は取得できない」と書きましたが、
「HKEY_CURRENT_USER\Software」だと取得する事ができました。その配下の階層が取得できません。
レジストリエディタのアクセス許可でAdministratorやUsersを追加してみたのですが・・駄目でした。
<identity impersonate〜で指定するユーザを色々変えてみたのですが・・それも駄目でした。

現在、yaさんに教えて頂いた内容を探ってみていますが「LoadUserProfile」を使用する方法が私には難しく・・検証にもうちょっとかかりそうです(> <)
何か分かりましたら自己レス致します。どうか、うまくいきますように・・

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