private static void WriteToNewFileWithOwnerRWPermissionsWindows()

in CredentialProvider.Microsoft/Util/EncryptedFileWithPermissions.cs [125:163]


        private static void WriteToNewFileWithOwnerRWPermissionsWindows(string filePath, byte[] bytes)
        {
            FileSecurity security = new();

            var rights = FileSystemRights.Read | FileSystemRights.Write;

            security.AddAccessRule(
                new FileSystemAccessRule(
                        WindowsIdentity.GetCurrent().Name,
                        rights,
                        InheritanceFlags.None,
                        PropagationFlags.NoPropagateInherit,
                        AccessControlType.Allow));

            security.SetAccessRuleProtection(isProtected: true, preserveInheritance: false);

            FileStream fs = null;

            try
            {
#if NET45_OR_GREATER
                if (File.Exists(filePath))
                {
                    File.Delete(filePath);
                }

                fs = File.Create(filePath, bytes.Length, FileOptions.None, security);
#else
                FileInfo info = new FileInfo(filePath);
                fs = info.Create(FileMode.Create, rights, FileShare.Read, bytes.Length, FileOptions.None, security);
#endif

                fs.Write(bytes, 0, bytes.Length);
            }
            finally
            {
                fs?.Dispose();
            }
        }