厳密名つきのアセンブリはGACへ登録する
ASP.NET 1.xでは、厳密名つきのアセンブリはドメイン中立(domain neutral)のアセンブリとして読み込まれます。そのため、ASP.NETのWebアプリケーションによって呼び出される厳密名つきのアセンブリは、binフォルダではなく、GACに登録する必要がありました。
http://www.microsoft.com/japan/msdn/security/guidance/secmod116.mspx
ASP.NET は厳密な名前のアセンブリをドメイン中立のアセンブリとして読み込むので、アセンブリは GAC 内にインストールされていなければなりません。ASP.NET の Web アプリケーションによって呼び出される厳密な名前のアセンブリはすべて、GAC 内にインストールされている必要があります。http://www.microsoft.com/japan/msdn/security/guidance/secmod80.mspx
部分的な信頼に対して設定された ASP.NET Web アプリケーションから呼び出されたどの厳密な名前付きのアセンブリも、グローバルアセンブリ キャッシュ内にインストールされている必要があります。これは、ASP.NET ホストがすべての厳密な名前付きのアセンブリをドメイン中立としてロードするためです。
では、ASP.NET 2.0ではどうなのでしょうか?『.NETエンタープライズWebアプリケーション開発技術大全 Vol.4 セキュアアプリケーション設計編』の内容訂正ということで以下のようなことが書かれています。
http://bpstore.nikkeibp.co.jp/nsp/teisei/mcs_vol4.html
また、次期バージョンのASP.NET 2.0では改善が図られる予定です。
実際に改善が図られたのどうかが書かれているページを探したのですが、blogサイトしか見つかりませんでした。
In 2.0 the assemblies are not loaded domain neutral so you are right:) there was a very specific reason i mentioned 1.1. (and 1.0 for that matter)
このブログを書いている人はどうやらマイクロソフトのサポートの方のようですので、ASP.NET 2.0では改善されているということでしょう。たぶん…
時間があったら検証してみたいと思います。