- PR -

ディレクトリのアクセス制御

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2006/05/19
投稿数: 125
投稿日時: 2008-07-28 11:55
WindowsVista、VisualStudio2005

ディレクトリのACLを変更するために以下のコードを書きました。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim dirName As String = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Test")

AddDirectorySecurity(dirName, "Everyone", FileSystemRights.FullControl, AccessControlType.Allow)

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

Private Sub AddDirectorySecurity(ByVal DirName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal ControlType As AccessControlType)
Dim dirInfo As New DirectoryInfo(DirName)

Dim dirSecurity As DirectorySecurity = dirInfo.GetAccessControl()

dirSecurity.AddAccessRule(New FileSystemAccessRule(Account, Rights, ControlType))

dirInfo.SetAccessControl(dirSecurity)
End Sub


ほぼMSDNのヘルプのままです。
ディレクトリのセキュリティにはEveryoneユーザは追加されるのですが、Everyoneのアクセス許可がフルコントロールになりません。
エラーも出ていません。
requireAdministrator権限のマニフェストをつけて試してみたのですが、結果は変わりませんでした。

同様にMSDNのヘルプに記載されていた
ファイルのACLを変更するコードを試してみたのですが、こちらはEveryone、フルコントロールに変更することができました。

いろいろ検索した結果、コードは特に問題がないように思えるのですが・・・
Vista特有の制約があったりするのでしょうか?

ディレクトリのACLを変更する方法をご教示ください。
よろしくお願いいたします。
未記入
大ベテラン
会議室デビュー日: 2006/05/19
投稿数: 125
投稿日時: 2008-07-28 13:58
自己解決いたしました。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2575034&SiteID=7
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-08-06 00:36
引用:

未記入さんの書き込み (2008-07-28 13:58) より:

自己解決いたしました。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2575034&SiteID=7


これは自己解決とは言わないですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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