特集

ノータッチ・デプロイメント

一色 政彦
2003/08/12


■セキュリティ・ゾーンの判定

 ノータッチ・デプロイメントされるアプリケーションは、イントラネットやインターネットなどさまざまなゾーン環境で利用される。そのような場合、実行されているゾーンをプログラムが判別して、ゾーン環境ごとに機能をカスタマイズすることで、それぞれのゾーン環境における最適なソリューションを実現することが可能だ。ゾーンの判別方法は、次のサンプル・プログラムを参照してほしい。

' Visual Basic .NET
Imports System.Security
Imports System.Security.Policy
Dim myZone As SecurityZone = _
  Zone.CreateFromUrl(AppDomain.CurrentDomain.BaseDirectory).SecurityZone
If myZone = SecurityZone.Internet Then
  ・・・・・・
End If
実行されているセキュリティ・ゾーンを判別するサンプル・プログラム(Visual Basic .NET版)
 
// C#
using System.Security;
using System.Security.Policy;
SecurityZone myZone =
  Zone.CreateFromUrl(AppDomain.CurrentDomain.BaseDirectory).SecurityZone;
if (myZone == SecurityZone.Internet)
{
  ・・・・・・
}
実行されているセキュリティ・ゾーンを判別するサンプル・プログラム(C#版)

 ここで取得できるSecurityZoneの値には次のものがある。

Internet インターネット・ゾーン
Intranet ローカル・イントラネット・ゾーン
MyComputer ローカル・コンピュータ・ゾーン
NoZone ゾーン指定なし
Trusted 信頼されたサイト・ゾーン
Untrusted 制限付きサイト・ゾーン
取得されるSecurityZoneの値

■インターネット・ゾーンでテストする方法

 最後に、ローカル・マシン上にあるプログラムをインターネット・ゾーンでのセキュリティ制限下でテスト/デバッグするテクニックを紹介しておこう。まず、IISの仮想ディレクトリにプログラムを配置して、Web経由でアクセスできるようにする。そして、Visual Studio .NETの統合開発環境のメニューから[プロジェクト]−[プロパティ]を選択して「プロジェクトのプロパティ」を起動し、次のように設定を変更する。

Visual Basic .NET 2003
Visual C# .NET 2003
Visual Studio .NET 2003でのプログラムの起動設定
  [構成のプロパティ]−[デバッグ]を選択する。
  [デバッグ モード]で「プログラム」を選択する。ここでいったん[適用]しないと、[スタート アプリケーション]を入力できない場合がある。
  [スタート アプリケーション]で「C:\WINNT\Microsoft.NET\Framework\v1.1.4322\IEExec.exe」を入力する。
  [コマンド ライン引数]で「http://127.0.0.1/<仮想ディレクトリ名>/<実行ファイル名(例:NtdSample.exe)>」を入力する。

 インターネット・ゾーンでプログラムを実行するには、配置したプログラムのURLがIPアドレス(例:http://127.0.0.1/)またはサイトURL(例:http://www.atmarkit.co.jp/)のようにドット(.)を含んでいる必要がある。URLがlocalhost(例:http://localhost/)やコンピュータのマシン名(例:http://mycomputer/)のようにドットを含まない場合はイントラネット・ゾーンになるので注意が必要だ。

 なお、Visual Studio .NET 2002でデバッグを行うには、[スタート アプリケーション]で「C:\WINNT\Microsoft.NET\Framework\v1.0.3705\IEExec.exe」を入力し、[コマンド ライン引数]で「http://127.0.0.1/<仮想ディレクトリ名>/<実行ファイル名> 1 3 00」を入力する。Visual Studio .NET 2003および2002で、IEExec.exeに指定するコマンド・ライン引数の仕様は次の通りだ。

Visual Studio .NET 2003(Microsoft .NET Framework 1.1)の場合
第1引数:ダウンロード対象アセンブリのURL
 例:http://127.0.0.1/foo.exe
Visual Studio .NET 2002(Microsoft .NET Framework 1.0)の場合
第1引数:ダウンロード対象アセンブリのURL
 例:http://127.0.0.1/foo.exe
第2引数:エビデンス・モード指定フラグ
 ・1:ゾーン・エビデンス
第3引数:ゾーン・エビデンス指定フラグ
 ・0:マイ・コンピュータ
 ・1:イントラネット
 ・2:信頼済みサイト
 ・3:インターネット
第4引数:ドメインID
 ・00
IEExec.exeのコマンド・ライン引数

■ノータッチ・デプロイメントのコンテスト開催!

 マイクロソフトは2003年7月9日から2003年9月30日までノータッチ・デプロイメント・コンテストを開催している。募集する部門はユーティリティ部門とゲーム部門だ。

 ノータッチ・デプロイメントでは強いセキュリティ制限がなされているため、それを考慮したアプリケーションが要求される。今回のコンテストではその強い制限下で“どこまでできるか”というのが目標となっている。よって評価基準は機能の豊富さよりも、アイデアの意外性の方が重要になるだろう。

 応募作品はコンテスト事務局で審査され、Web上で一般公開される。作品の実行には.NET Framework 1.1が必要だ(Windows Updateで入手できる)。部門ごとに優勝1作品と準優勝2作品が決められ、賞品として優勝者にはHDDレコーダー、準優勝者にはXboxおよびXbox Live! スタータキットが用意されている。詳しい内容はコンテストのサイトをご覧いただきたい。また、ノータッチ・デプロイメントに関する質問はGotDotNet Japanの掲示板にコンテスト用のフォーラムがあるのでご利用していただきたい。End of Article

 

 INDEX
  [特集]ノータッチ・デプロイメント
     1.ノータッチ・デプロイメントとは何か
     2. .NETアセンブリのコード・アクセス・セキュリティ
     3.インターネット・ゾーンのセキュリティ・ポリシー
     4.ノータッチ・デプロイメントのプログラミング(1)
     5.ノータッチ・デプロイメントのプログラミング(2)
   6.ノータッチ・デプロイメントのコンテスト開催!
 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間