- PR -

ノータッチデプロイメントでのDLLの扱い

投稿者投稿内容
ranta
会議室デビュー日: 2004/05/11
投稿数: 11
お住まい・勤務地: 神奈川
投稿日時: 2004-05-12 13:36

Jubeiさん、返信ありがとう御座います。
2点質問があります。

引用:
--------------------------------------------------------------------------------


えっと、インスタンス化のところですね。
ローカル環境アクセスは無いはず。。
ん?P/InvokeでIME関数呼んでいるんですけど。。それが問題?

--------------------------------------------------------------------------------


■ローカル環境アクセスについて
プロジェクト内にDLL内のクラスを継承したクラスがあります。
そのクラスのインスタンス生成時にエラーが発生しています。

この場合は、ローカル環境アクセスは発生しないのでしょうか?
見てみるとC:\Documents and Settings\[UserName]\Local Settings\Application Data\assembly\・・・
内にDLLがコピーされています。
これへのアクセスでセキュリティエラーになったものと判断していたのですが、違うのでしょうか?

■IME関数の呼出しについて
>ん?P/InvokeでIME関数呼んでいるんですけど。。それが問題?
IME関数の呼出しとは、具体的にどの部分を指しているのでしょうか?

稚拙な質問で申し訳御座いません。
ご解答の程、宜しくお願い致します。


Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-12 15:07
諸農です。

引用:

この場合は、ローカル環境アクセスは発生しないのでしょうか?
見てみるとC:Documents and Settings[UserName]Local SettingsApplication Dataassembly・・・
内にDLLがコピーされています。
これへのアクセスでセキュリティエラーになったものと判断していたのですが、違うのでしょうか?


たぶんデフォルトでここにダウンロードされるはずです。
こちらが参考になると思います。
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=1891
このスレッドの最後のほうで言及されています。

引用:

■IME関数の呼出しについて
>ん?P/InvokeでIME関数呼んでいるんですけど。。それが問題?
IME関数の呼出しとは、具体的にどの部分を指しているのでしょうか?



えっと、これは、こちらのスレッドで紹介したコンポです。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7712&forum=7


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
ranta
会議室デビュー日: 2004/05/11
投稿数: 11
お住まい・勤務地: 神奈川
投稿日時: 2004-05-12 15:44
ご回答ありがとう御座います。

引用:

たぶんデフォルトでここにダウンロードされるはずです。
こちらが参考になると思います。
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=1891
このスレッドの最後のほうで言及されています。



こちらのスレッドを拝見させて頂き、ローカルファイルを確認しました。
テンポラリ内でDLLを見に行く分には、ローカルアクセスにはならないのでしょうか?
ローカルアクセスにならないのであれば、IME関数を使用しない単純なDLLであれば、
セキュリティを緩めることなく使用できるのでしょうか?


引用:

えっと、これは、こちらのスレッドで紹介したコンポです。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7712&forum=7



Imm○○○ですよね。
IME関数は、どこから使用していると判断できるのでしょうか?
DLLのソースを見ても、例外内容を見てもImm○○○が見つからず、
使用しているのかどうか、分からずにいます。

せっかく、ご回答頂いた主旨を理解できずにいます。
お手数お掛けいたしまして、大変申し訳御座いません。
ご回答の程、よろしくお願い致します。


Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-12 16:17
 『P/Invoke もデフォルトでは禁止のはずです』は、おそらくこのあたり…
引用:

2004-05-12 09:18 より:

System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


Windowsのメッセージを直接操作しようとしているようです。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-12 18:15
諸農です。

引用:

SEIさんの書き込み (2004-05-12 15:44) より:

Imm○○○ですよね。
IME関数は、どこから使用していると判断できるのでしょうか?
DLLのソースを見ても、例外内容を見てもImm○○○が見つからず、
使用しているのかどうか、分からずにいます。



いえ、IMM関数がということではなく、
先に紹介した自作のコントロールが使っているのが
P/InvokeでたまたまIMM関数でしたということなんです。
Jittaさんからのコメントにもあるとおり、IMM関数を
メッセージ処理内で使っている、またはP/Invokeを
使っている(こちらは渋木宏明(ひどり)さんからのコメ
ント)ので駄目なんではないだろうか、ということです。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
ranta
会議室デビュー日: 2004/05/11
投稿数: 11
お住まい・勤務地: 神奈川
投稿日時: 2004-05-12 18:15

返信、ありがとう御座います。

分かり難くなってしまったのですが、以下の認識で合っていますでしょうか?

Windowsのメッセージなどを直接操作しないと仮定した場合
・静的(?)にDLLを参照設定した場合は、正常に動作する
・動的(?)にDLLを参照設定した場合は、セキュリティ例外が発生する

今回の私の場合は、静的(?)にDLLを参照設定しているが、
DLL内でIME関数などのWindowsメッセージを直接操作しているため、
セキュリティ例外が発生している。

セキュリティレベルを『完全な信頼』にしてしまった場合、ローカル動作との違い
(ファイルの保存・読込みなど)は無いのでしょうか?

すみません。
勝手な質問ばかりになってしまいました。
他の文献などを見ても今一的を得ず、困惑しています。

お忙しい中、大変申し訳御座いませんが
ご回答の程、宜しくお願い致します。
ranta
会議室デビュー日: 2004/05/11
投稿数: 11
お住まい・勤務地: 神奈川
投稿日時: 2004-05-12 18:25

返信、ありがとう御座います。
レスが重なってしまいました。。

引用:

いえ、IMM関数がということではなく、
先に紹介した自作のコントロールが使っているのが
P/InvokeでたまたまIMM関数でしたということなんです。
Jittaさんからのコメントにもあるとおり、IMM関数を
メッセージ処理内で使っている、またはP/Invokeを
使っている(こちらは渋木宏明(ひどり)さんからのコメ
ント)ので駄目なんではないだろうか、ということです。



DLLの参照設定に関しては、やっと理解できました。
お手数お掛けして申し訳御座いません。

スレ違いになってしまうかも知れませんが、もう一つだけお願いします。

セキュリティを『完全な信頼』にした場合は、ローカルアプリと制限の差はあるのでしょうか?
サンプルを作成してみたところ、動作に差は見られないように思えました。
(勿論、セキュリティという面では大いに差はありますが。。)
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-12 22:03
諸農です。

引用:

セキュリティを『完全な信頼』にした場合は、ローカルアプリと制限の差はあるのでしょうか?
サンプルを作成してみたところ、動作に差は見られないように思えました。
(勿論、セキュリティという面では大いに差はありますが。。)



あぁ、申し訳ないです。
そのうちしないといけないと思いながらも。。
まだ、そこまでの検証は出来ていない(やっていない)んです。。

もし、何か判れば是非教えてください。
きっと皆さんにとっても有益な情報になると思いますので(^^)

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/

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