- PR -

Webアプリケーションでクライアントのレジストリ取得

投稿者投稿内容
山田
会議室デビュー日: 2006/10/23
投稿数: 4
投稿日時: 2006-10-23 20:39
初めまして、山田です。

.Net VBにてWebアプリケーションを作成しています。
やりたいことは、クライアント側のレジストリ取得です。

hoge.asax.vb にて、レジストリの取得プログラムを書き(getReg)
bar.aspx にてそのメソッドを呼び出しています。

クライアントは、bar.aspxを実行するとgetRegが呼び出され
レジストリが取得出来るのですが、サーバー側のレジストリを
参照してしまいます。

クライアントのレジストリを読み込むにはどの様なプログラムを
作成すればよろしいのでしょうか。
レジストリの種類は、REG_BINARYとなっています。

getRegは下記です。

Function getReg(ByVal keyPath As String, ByVal keyName As String)
Dim instance As RegistryKey
Dim bytes As Byte()

instance = Microsoft.Win32.Registry.LocalMachine
instance = instance.OpenSubKey(keyPath)
bytes = CType(instance.GetValue(keyName), Byte())
instance.Close()

path = Encoding.Unicode.GetString(bytes)
Return path

End Function

クライアント側のレジストリを取得するには、RegistryKey以外の関数を使用するのでしょうか?
それとも、呼び出し側で何か特別なことを行うのでしょうか?

サーバー Windows2003
クライアント WindowsXP HomeEdition

[ メッセージ編集済み 編集者: 山田 編集日時 2006-10-23 20:40 ]
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-10-23 22:07
何をしたいのかわかりませんが、「できなくてで当たり前」というのはわかりますよね。

おそらく、クライアントに ActiveX をインストールさせる等特別な作業が必要です。

で、クライアントのレジストリを取得するとなると、相当クライアントに依存するアプリケーションになっちゃうわけですが、Web アプリケーションの利点がかなりなくなりませんか?
_________________
囚人のジレンマな日々
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2006-10-23 22:49
引用:

何をしたいのかわかりませんが、「できなくてで当たり前」というのはわかりますよね。


いや、多分、できなくて当たり前がわかっていない可能性大だと思う。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-10-23 23:03
何か悪意のあるサイトでも作るご予定でしょうか?
ActiveXをクライアントにインストールしてもらうか、
ブラウザのセキュリティーホールをついて、スパイウェアでも送り込みましょう
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-10-23 23:05
#2ちゃん風に言うと「その質問はもう飽きた。
#もっと面白い事を聞いてくれ」って感じ

その処理をASP.NETで記述し、サーバー側で動かしても取得できるのはサーバー側のレジストリ設定。ASP.NETはあくまでサーバー側で動作し、HTMLデータを生成してクライアントに送っているだけだと言うことを理解して欲しい。

そして、もしも特別なソフトウェアをクライアントにインストール(あるいはクライアントの設定を変更)する事なく、クライアントPCのデータを取り出せたなら、世間ではそれをセキュリティホールと呼ぶ事も理解して欲しい。

クライアント側のレジストリ設定を読み出すためには、その処理を.NET Frameworkアプリケーションとしてクライアント上で動かす必要がある。

_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-10-24 09:29
引用:

山田さんの書き込み (2006-10-23 20:39) より:

クライアントのレジストリを読み込むにはどの様なプログラムを
作成すればよろしいのでしょうか。
レジストリの種類は、REG_BINARYとなっています。



クライアント側に何らかの情報を保持させる場合は、クッキーを使うのが一般的ですよね。
そういう目的かな?、と勝手に想像してみました。

#いろいろな方が書いているので、レジストリの件は省略しました。
_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog
山田
会議室デビュー日: 2006/10/23
投稿数: 4
投稿日時: 2006-10-24 10:29
返信ありがとうございます。

>いや、多分、できなくて当たり前がわかっていない可能性大だと思う。

確かに判っていませんでした。
キーの読み込み程度なら出来るのかなと思っていました。


>何か悪意のあるサイトでも作るご予定でしょうか?

MicrosoftのとあるSDKを利用してサービスを立ち上げようとしているのですが
その技術指南書にレジストリを読み込んでHogeしろと書いてあったので。。。。。。


>ASP.NETはあくまでサーバー側で動作し、HTMLデータを生成してクライアントに送っているだけだと言うことを理解して欲しい。

これはそうだろうなぁと思っていましたが、もしかしたら・・・と思いやってみました。
結果駄目でしたので、どうするのだろうと思い質問してみました。


>クライアント側のレジストリ設定を読み出すためには、その処理を.NET Frameworkアプリケーションとしてクライアント上で動かす必要がある。

なるほど。
こちらの線で調べてみたいと思います。


>クライアント側に何らかの情報を保持させる場合は、クッキーを使うのが一般的ですよね。
そういう目的かな?、と勝手に想像してみました。

クライアント側のレジストリに、ファイルパスが書いてあり
そのファイルを読み込んでバージョンを確認して
バージョンによって処理を変えたいのです。
ってこれを最初に書けば良かったですね。
想馬
大ベテラン
会議室デビュー日: 2003/05/29
投稿数: 245
お住まい・勤務地: 神奈川・東京
投稿日時: 2006-10-24 10:43
>クライアント側のレジストリに、ファイルパスが書いてあり
>そのファイルを読み込んでバージョンを確認して
>バージョンによって処理を変えたいのです。

イメージとしては他人の家に勝手に上がりこんで何かを探そうとしているようなもの。
_________________
己への戒め

「活動的な馬鹿より恐ろしいものはない」 by ゲーテ

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