- - PR -
継承されたアクセス権を削除する方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-04-16 21:58
いつも参考にさせていただいています。
VS.NET2005 ASP.NET C# WEBサーバー:Win2003 Standard Edition SP1 IIS:6.0 で開発を行っています。 行いたいこと すでにあるファイル、フォルダのアクセス権の継承を外し、別途独自のアクセス権を付ける 新規にフォルダを作る場合、下記の方法で継承が外れたものが作成できました。 DirectorySecurity dSecurity = new DirectorySecurity(); dSecurity.AddAccessRule(付けたいアクセス権); Directory.CreateDirectory(対象フォルダ, dSecurity);・・・@ すでにあるフォルダの場合 @の部分を Directory.SetAccessControl(対象フォルダ, dSecurity); としてみたところ、 継承されたアクセス権がついたままの状態でした。 別の方法として DirectorySecurity dSecurity = DirectorySecurity(対象フォルダ); dSecurity.RemoveAccessRule(継承されたアクセス権);・・・A Directory.CreateDirectory(対象フォルダ, dSecurity); 等、行いましたが継承されたアクセス権はついたままで、 Aの後、dSecurityの中身を見てみたところ 消した筈のアクセス権が消えていませんでした。 継承されたアクセス権を外す方法について どなたかご教授いただけないでしょうか。 よろしくお願いいたします。 |
|
投稿日時: 2007-04-17 03:41
この手の操作 .NET でやったこと無いんですが、ACL の仕様から考えてこれをいじるんじゃないかな?
ObjectSecurity.SetAccessRuleProtection _________________ |
|
投稿日時: 2007-04-17 10:53
DirectorySecurity クラス
使用例の通りにやればよろしいのではないでしょうか。 DirectorySecurityにAddAccessRuleやRemoveAccessRuleをしてあげてから、そのDirectorySecurityをDirectoryInfoにSetAccessControlしてあげるって手順。 ---追記--- あれ?SetAccessControlやったけどダメだったってことですかね。すみません。文章よく読んでなかったです。ごめんなさい。 継承を断つにはちゃっぴさんの仰るとおり SetAccessRuleProtection ですね。 [ メッセージ編集済み 編集者: かめたろ 編集日時 2007-04-17 11:24 ] |
|
投稿日時: 2007-04-17 20:14
ちゃっぴさん
かめたろさん 返答ありがとうございます。 SetAccessRuleProtection(true,false); で継承されたアクセス権を削除することが出来ました。 |
1