반응형
모든 사용자에게 내 응용 프로그램에서 만든 파일에 대한 전체 권한을 부여하는 방법은 무엇입니까?
내가 개발 한 도구는 자신이 만든 파일에 "모든 권한"액세스 권한을 부여해야합니다. 모든 Windows 계정 및 향후 가능한 계정에서 읽고 수정하고 삭제해야합니다. 이것이 달성 될 수 있습니까?
SPECIFIC_USER를 위해 이것을 시도 할 수 있다는 것을 알고 있습니다.
FileSystemAccessRule rule = new FileSystemAccessRule(SPECIFIC_USER, FileSystemRights.FullControl, AccessControlType.Allow);
FileSecurity fSecurity = File.GetAccessControl(filePath);
fSecurity.SetAccessRule(rule);
File.SetAccessControl(filePath, fSecurity);
그러나 모든 사용자에게 어떻게 부여합니까? 그리고 가능한 미래 계정? 후자가 불가능한 경우 첫 번째 요구 사항을 어떻게 처리해야합니까?
감사.
편집하다:
이것은 나를 위해 일한 코드입니다. 응답자의 링크에서 가져옵니다.
private bool GrantAccess(string fullPath)
{
DirectoryInfo dInfo = new DirectoryInfo(fullPath);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(
new SecurityIdentifier(WellKnownSidType.WorldSid, null),
FileSystemRights.FullControl,
InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit,
PropagationFlags.NoPropagateInherit,
AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);
return true;
}
메모 PropagationFlags.NoPropagateInherit
(링크에 마지막으로 언급 된) 요구되는합니다. 미래의 계정에도 권한을 부여합니다.
이것을 사용하는 사람들에게 참고하십시오.
에 리터럴 문자열을 사용할 때는 대신 FileSystemAccessRule
이어야합니다 .WellKnownSidType.WorldSid
"everyone"
그 이유는 여러 Window 언어가 있고 Everyone은 EN에만 적용되므로 스페인어의 경우 "Todos"(또는 다른 것) 일 수 있습니다.
using System.Security.AccessControl;
using System.Security.Principal;
using System.IO;
private void GrantAccess(string fullPath)
{
DirectoryInfo dInfo = new DirectoryInfo(fullPath);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);
}
컴퓨터의 "Everyone"그룹에 모든 권한을 부여해야합니다. 그것에 대해 이야기하는 MSDN 에서이 게시물을 찾았 습니다.
이것이 당신을 위해 작동하기를 바랍니다.
반응형
'Nice programing' 카테고리의 다른 글
두 어레이 사이의 교차점을 새 어레이로 어떻게 얻습니까? (0) | 2020.11.06 |
---|---|
Python에서 3D 산점도를 만드는 방법은 무엇입니까? (0) | 2020.11.04 |
Django ModelForm : save (commit = False)는 무엇에 사용됩니까? (0) | 2020.11.04 |
npm을 사용하여 "devDependencies"만 설치하는 방법 (0) | 2020.11.04 |
이름이 [DEFAULT] 인 FirebaseApp이 존재하지 않습니다. (0) | 2020.11.04 |