2005年11月18日

Unrestricted=falseって何?

  
11月15日に書いた C#(というか.NET)における宣言セキュリティの続き。

[FileIOPermissionAttribute(SecurityAction.Deny, Unrestricted=true)]
private void Test() {
// ここでファイルを読み込む
}

とすると、Denyを指定しているので、ファイルアクセスを許可していないことになる。
当然、Test()を呼び出すと、例外が発生する。
では、以下のように Unrestricted=false とするとどうなるのだろう。

[FileIOPermissionAttribute(SecurityAction.Deny, Unrestricted=false)]

これだと、例外は発生しない。この場合は、具体的にどの操作を拒否するのかを指定しなくてはならない。簡単に言えば、読み込みを拒否するのか、書き込みを拒否するのか、ということを指定するわけだ。
たとえば、こんな感じ。

[FileIOPermissionAttribute(SecurityAction.Deny, 
Unrestricted=false, Read=@"D:\Temp")]


この場合は、D:\Tempフォルダ配下へのRead操作が拒否されることになる。

[FileIOPermissionAttribute(SecurityAction.Deny, 
Unrestricted=false, Write=@"D:\Temp")]

とすれば、読み込みはOKだが、書き込み操作が拒否されるわけだ。
こんな風に、こまかなアクセス制御が可能になる。

うーん、でもここまで神経を使わなくてはいけないんだろうか。
「SecurityAction Unrestricted」でgoogleで検索してもヒットする日本語のページはほんのわずかであり、きっと、ほとんど使われていないんだろな。

それと、MSDNでのUnrestricted の説明は、以下のようになっている。

属性によって保護されているリソースに対して完全な (無制限の) アクセス許可が宣言されているかどうかを示す値を取得または設定します。

僕は、この日本語をまったく理解できない。
これは、僕の日本語読解力の無さのせいなのか。それとも....


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/50202835
この記事へのトラックバック
属性によって保護されているリソースに対して完全な (無制限の) アクセス許可が宣言されているかどうかを示す値を取得または設定します。 僕は、この日本語をまったく理解できない。 これは、僕の日本語読解力の無さのせいなのか。それとも.... 「Unrestricted=falseって...
[徒然]日本語訳の難しさ【Kazzzの「JとNの狭間で」】at 2005年11月22日 07:48