0

ファイル ( ) にフル アクセス許可を設定しますfileName。コードサンプルを見つけました:

var security = IO.File.GetAccessControl(fileName);

security.AddAccessRule(new Security.AccessControl.FileSystemAccessRule(
    new SecurityIdentifier(WellKnownSidType.WorldSid, null),
    Security.AccessControl.FileSystemRights.FullControl,
    Security.AccessControl.AccessControlType.Allow));

IO.File.SetAccessControl(fileName, security);

filenameうまく機能していますが、メソッドに を渡す必要がある理由がわかりませんSetAccessControl(最初の行で既に提供しています)。コードに変更を加えたところ、これも機能していることがわかります。

var security = IO.File.GetAccessControl(anotherFileName);

security.AddAccessRule(new Security.AccessControl.FileSystemAccessRule(
    new SecurityIdentifier(WellKnownSidType.WorldSid, null),
    Security.AccessControl.FileSystemRights.FullControl,
    Security.AccessControl.AccessControlType.Allow));

IO.File.SetAccessControl(fileName, security);

anotherFileNameでは、ここの用途は何ですか?

4

2 に答える 2

2

GetAccessControlを取得しFileSecurityます。

MSDN から:

ファイルのアクセス制御と監査セキュリティを表します。[...] このクラスは、アクセス権と監査権を一連のルールとして表します。

AFileSecurityは特定のファイルに依存しないためFileSecurity、複数のファイルに対して 1 つを使用して、同一のアクセスおよび監査権限を設定できます。

これが、ファイル名を指定する必要がある理由です。

FileInfo別の方法は、クラスを使用することです。

var fileInfo = new FileInfo(filename);
var security = fileInfo.GetAccessControl();
// [...]
fileInfo.SetAccessControl(security);

MSDNのコンストラクター:

FileSecurity()

空のFileSecurityオブジェクトを作成します。

FileSecurity(String, AccessControlSections)

指定された列挙FileSecurity値を使用して、指定されたファイルから空のオブジェクトを作成します。AccessControlSections

于 2013-10-24T16:49:29.283 に答える
0

セキュリティ情報 (ACL) はオブジェクトに関連付けられていないため、1 つのファイルの現在の値を取得して、他のファイルに適用できます。

これは - とまったく同じですstring name = person.Name-nameは に関連付けられておらずperson、1 つのプロパティだけです。

于 2013-10-24T16:52:02.957 に答える